import Debug from "debug"; import type { JsonLike } from "./json.js"; import type { AppendOnlyLog } from "./log.js"; import type { FsDuplexParty } from "./protocol.js"; export declare abstract class FsDuplex { readonly party: P; protected json: JsonLike; protected readerLog: AppendOnlyLog; protected writerLog: AppendOnlyLog; private processor; private state; private localSeq; private localAck; protected readonly log: Debug.Debugger; readonly onOpen: import("@gaubee/util").PureEventWithApply; readonly onClose: import("@gaubee/util").PureEventWithApply; readonly onError: import("@gaubee/util").PureEventWithApply; readonly onData: import("@gaubee/util").PureEventWithApply; get currentState(): "opening" | "open" | "closing" | "closed"; constructor(party: P, json: JsonLike, readerLog: AppendOnlyLog, writerLog: AppendOnlyLog); abstract start(): Promise; abstract stop(): Promise; abstract destroy(): Promise; protected handleIncomingData(): Promise; sendData(payload: T): void; init(initial_payload?: T): void; close(reason?: "done" | "error" | "timeout"): void; private _sendMessage; private _executeAction; } //# sourceMappingURL=common.d.ts.map