import { Action, IApplicationSpec } from "../../util"; import { IClient } from "./types"; import { ServerStore } from "../ServerStore"; export declare abstract class BaseClient implements IClient { protected readonly store: ServerStore; readonly id: string; abstract readonly isHuman: boolean; protected readonly supportsBatching: boolean; private finishedHandshake; constructor(store: ServerStore, id: string); send(action: Action): void; protected dispatch(action: Action): void; protected sendError(error: unknown): void; protected connect(): void; protected disconnect(): void; /** Initiates a handshake with the server. Useful for custom clients. */ protected startHandshake(queuedActions?: Action[]): void; sync(): void; protected abstract doSend(action: Action): void; abstract close(): void; }