type SetStateInternal = { _(partial: T | Partial | { _(state: T): T | Partial; }['_'], replace?: false): void; _(state: T | { _(state: T): T; }['_'], replace: true): void; }['_']; export interface StoreApi { setState: SetStateInternal; getState: () => T; getInitialState: () => T; subscribe: (listener: (state: T, prevState: T) => void) => () => void; } export type ExtractState = S extends { getState: () => infer T; } ? T : never; type Get = K extends keyof T ? T[K] : F; export type Mutate = number extends Ms['length' & keyof Ms] ? S : Ms extends [] ? S : Ms extends [[infer Mi, infer Ma], ...infer Mrs] ? Mutate[Mi & StoreMutatorIdentifier], Mrs> : never; export type StateCreator = ((setState: Get, Mis>, 'setState', never>, getState: Get, Mis>, 'getState', never>, store: Mutate, Mis>) => U) & { $$storeMutators?: Mos; }; export interface StoreMutators { } export type StoreMutatorIdentifier = keyof StoreMutators; type CreateStore = { (initializer: StateCreator): Mutate, Mos>; (): (initializer: StateCreator) => Mutate, Mos>; }; export declare const createStore: CreateStore; export {};