import { type Readable } from 'svelte/store'; type Enum = { [key: string]: T | string; [value: number]: string; }; type States = readonly T[] | Enum; type EnumSetter> = S[keyof S] | ((e: S) => S[keyof S]); type UseStatesEnumReturn> = Readable & { set: (value: EnumSetter) => void; }; type UseStatesArrayReturn = Readable & { set: (value: S[number]) => S[number]; }; type UseStatesReturn> = S extends readonly unknown[] ? UseStatesArrayReturn : S extends Enum ? UseStatesEnumReturn : []; export declare function useStates>(states: S, initialValue?: S extends readonly unknown[] ? S[number] : S[keyof S]): UseStatesReturn; export {};