import { Action, ClientAppAction, ClientStoreState, IApplicationSpec, Reducer } from "../util"; import { Store } from "redux"; import { IServerConnection } from "./conn"; export declare abstract class ClientStore { private readonly _store; /** Protocol version number. Used to check for mismatches between client & server versions. */ abstract readonly version: string; private conn; constructor(); getConnection(): IServerConnection | null; dispose(): void; abstract getInitialState(): Pick; abstract reduceL1: Reducer; abstract reduceL2: Reducer; abstract reduceL3: Reducer; abstract reduceL4: Reducer; handleL1(action: TSpec["actions"]["L1"]): void; handleL2(action: TSpec["actions"]["L2"]): void; handleL3(action: TSpec["actions"]["L3"]): void; handleL4(action: TSpec["actions"]["L4"]): void; abstract onVersionMismatch(client: string, server: string): void; onConnected(): void; onDisconnected(): void; get store(): Store, ClientAppAction>; dispatchFromServer(action: Action): void; dispatch(action: ClientAppAction): void; dispatchError(error?: unknown): void; connect(conn: IServerConnection): void; isActionFromServer(action: Action): boolean; private reduceMeta; }