import type { BaseAccessor } from './BaseAccessor.js'; import { type AccessorCreator, type CreateModelOptions, type InfiniteAccessorCreator, type Model } from './createModel.js'; import type { Action, InfiniteAction } from './types.js'; export type AutoState = Record; export type AutoAction = Omit, 'syncState'>; export type AutoInfiniteAction = Omit, 'syncState'>; export interface AutoModel extends Pick, 'invalidate' | 'subscribe' | 'getCreator'> { mutate(accessor: BaseAccessor, fn: (prevData: Data | undefined) => Data, serverStateKey?: object): void; defineAccessor(action: AutoAction): AccessorCreator; defineInfiniteAccessor(action: AutoInfiniteAction): InfiniteAccessorCreator; getState(accessor: BaseAccessor, serverStateKey?: object): Data | undefined; } export type CreateAutoModelOptions = Omit, 'initialState'>; export declare function createAutoModel({ onServerStateChange }?: CreateAutoModelOptions): AutoModel;