import type { FsDuplexMessage, FsDuplexMessageType, FsDuplexParty } from "./protocol.js"; export type FsDuplexState = "opening" | "open" | "closing" | "closed"; type EmitAction = { type: "emit"; event: "open" | "close" | FsDuplexMessageType; payload?: any; }; type SendAction = { type: "send"; messageType: FsDuplexMessageType; payload: any; }; export type Action = EmitAction | SendAction; export interface ProcessResult { actions: Action[]; newState: FsDuplexState; newLocalAck: number; } /** * A stateless rule engine for the FsDuplex protocol. * It processes an incoming message against the current state and returns a set of actions to be executed. * It is generic and does not know about the content of the data `T` it processes. */ export declare class MessageProcessor { private party; constructor(party: FsDuplexParty); process(message: FsDuplexMessage, currentState: FsDuplexState, currentLocalAck: number): ProcessResult; } export {}; //# sourceMappingURL=processor.d.ts.map