/** Cleanup logic callback. */ type Invalidator = (value?: T) => void; /** Callback to inform of a value updates. */ type Subscriber = (value: T) => void; /** Unsubscribes from value updates. */ type Unsubscriber = () => void; /** Callback to update a value. */ type Updater = (value: T) => T; /** * Start and stop notification callbacks. * This function is called when the first subscriber subscribes. * * @param set - Function that sets the value of the store. * @param update - Function that sets the value of the store after passing thecurrent value to the * update function. * @returns Optionally, a cleanup function that is called when the last remaining subscriber * unsubscribes. */ type StartStopNotifier = (set: (value: T) => void, update: (fn: Updater) => void) => void | (() => void); /** Readable interface for subscribing. */ export interface Readable { /** * Subscribe on value changes. * @param run subscription callback * @param invalidate cleanup callback */ subscribe(this: void, run: Subscriber, invalidate?: Invalidator): Unsubscriber; } /** Writable interface for both updating and subscribing. */ export interface Writable extends Readable { /** * Set value and inform subscribers. * @param value to set */ set(this: void, value: T): void; /** * Update value using callback and inform subscribers. * @param updater callback */ update(this: void, updater: Updater): void; } /** * Creates a `Readable` store that allows reading by subscription. * * https://svelte.dev/docs/svelte-store#readable */ export declare function readable(value: T, start: StartStopNotifier): Readable; /** * Create a `Writable` store that allows both updating and reading by subscription. * * https://svelte.dev/docs/svelte-store#writable * @param value - initial value */ export declare function writable(value: T, start?: StartStopNotifier): Writable; /** * Get the current value from a store by subscribing and immediately unsubscribing. * * https://svelte.dev/docs/svelte-store#get * @template T * @param {Readable} store * @returns {T} */ export declare function get(store: Readable): T; export {};