import { type Readable, type Writable } from 'svelte/store'; export type ReadOrWritable = Readable | Writable; export declare const isReadable: (value: any) => value is Readable; export declare const isWritable: (store: any) => store is Writable; export type WritableKeys = { [K in keyof T]: T[K] extends undefined ? Writable : Writable; }; export type ReadableKeys = { [K in keyof T]: T[K] extends undefined ? Readable : Readable; }; export type ReadOrWritableKeys = { [K in keyof T]: T[K] extends undefined ? ReadOrWritable : ReadOrWritable; }; export declare const Undefined: Readable; export declare const UndefinedAs: () => Readable; export interface ToggleOptions { clearOthers?: boolean; } export interface ArraySetStoreOptions { isEqual?: (a: T, b: T) => boolean; } export interface ArraySetStore extends Writable { toggle: (item: T, options?: ToggleOptions) => void; add: (item: T) => void; remove: (item: T) => void; clear: () => void; } export declare const arraySetStore: (initial?: T[], { isEqual }?: ArraySetStoreOptions) => ArraySetStore; export interface RecordSetStore extends Writable> { toggle: (item: T) => void; add: (item: T) => void; addAll: (items: T[]) => void; remove: (item: T) => void; removeAll: (items: T[]) => void; clear: () => void; } export declare const recordSetStore: (initial?: Record) => RecordSetStore;