const props = defineProps();
const emit = defineEmits();
function encode(value) { return JSON.stringify(value); }
function decode(raw) { const option = props.options.find(x => encode(x.value) === raw); return option?.value ?? null; }
const __VLS_ctx = {
    ...{},
    ...{},
    ...{},
    ...{},
    ...{},
};
let __VLS_components;
let __VLS_intrinsics;
let __VLS_directives;
__VLS_asFunctionalElement1(__VLS_intrinsics.select, __VLS_intrinsics.select)({
    ...{ onChange: (...[$event]) => {
            return (__VLS_ctx.emit('update:modelValue', __VLS_ctx.decode($event.target.value)));
            // @ts-ignore
            [emit, decode,];
        } },
    ...{ onBlur: (...[$event]) => {
            return (__VLS_ctx.emit('blur', $event));
            // @ts-ignore
            [emit,];
        } },
    id: (__VLS_ctx.inputId),
    ...{ class: "ks-native-input" },
    value: (__VLS_ctx.encode(__VLS_ctx.modelValue)),
    disabled: (__VLS_ctx.disabled),
    'aria-invalid': (__VLS_ctx.invalid || undefined),
});
/** @type {__VLS_StyleScopedClasses['ks-native-input']} */ ;
if (__VLS_ctx.placeholder) {
    __VLS_asFunctionalElement1(__VLS_intrinsics.option, __VLS_intrinsics.option)({
        value: "",
        disabled: true,
    });
    (__VLS_ctx.placeholder);
}
for (const [option] of __VLS_vFor((__VLS_ctx.options))) {
    __VLS_asFunctionalElement1(__VLS_intrinsics.option, __VLS_intrinsics.option)({
        key: (__VLS_ctx.encode(option.value)),
        value: (__VLS_ctx.encode(option.value)),
        disabled: (option.disabled),
    });
    (option.label);
    // @ts-ignore
    [inputId, encode, encode, encode, modelValue, disabled, invalid, placeholder, placeholder, options,];
}
// @ts-ignore
[];
const __VLS_export = (await import('vue')).defineComponent({
    __typeEmits: {},
    __typeProps: {},
});
export default {};
