import type { Ref } from "./lib/svelte.svelte.js"; import { type EnumOption, type SchemaArrayValue, type SchemaValue } from "./core/index.js"; export interface OptionsMapper { fromValue: (value: SchemaValue | undefined) => V; toValue: (value: V) => SchemaValue | undefined; } export type EnumValueMapper = OptionsMapper; export interface EnumValueMapperBuilder { push(option: EnumOption): string; build(): EnumValueMapper; } export declare const EMPTY_VALUE = ""; /** @deprecated use `EMPTY_VALUE` instead */ export declare const UNDEFINED_ID = ""; declare abstract class AbstractValueMapperBuilder implements EnumValueMapperBuilder { #private; protected abstract optionToStr(option: EnumOption): string; push(option: EnumOption): string; build(): EnumValueMapper; } export declare class IdEnumValueMapperBuilder extends AbstractValueMapperBuilder { protected optionToStr(option: EnumOption): string; } export declare class StringEnumValueMapperBuilder extends AbstractValueMapperBuilder { protected optionToStr(option: EnumOption): string; } /** @deprecated */ export declare function idMapper(options: EnumOption[]): EnumValueMapper; interface OptionValue { /** @deprecated use `current` instead */ value: V; } export declare function singleOption({ mapper, value, update, }: { mapper: () => OptionsMapper; value: () => SchemaValue | undefined; update: (value: SchemaValue | undefined) => void; }): OptionValue & Ref; export declare function multipleOptions({ mapper, value, update, emptyValue, }: { mapper: () => OptionsMapper; value: () => SchemaArrayValue | undefined; update: (value: SchemaArrayValue) => void; emptyValue?: V; }): OptionValue & Ref; export {};