import type { Doc } from 'sharedb/lib/client'; export type IInstanceAction = { type: 'update'; doc: Doc; } | { type: 'ready'; results: Doc[]; extra: unknown; } | { type: 'insert'; docs: Doc[]; index: number; } | { type: 'remove'; docs: Doc[]; index: number; } | { type: 'move'; docs: Doc[]; from: number; to: number; } | { type: 'clear'; } | { type: 'extra'; extra: unknown; }; export interface IInstanceState { instances: R[]; extra: unknown; } export declare function instanceReducer(state: IInstanceState, action: IInstanceAction, factory: (data: T, doc?: Doc) => R): IInstanceState;