/** Group Signaling Protocol client wrapper. */ import { PayloadCodec } from "./native"; import { MlsContext } from "./mls"; import { GroupNode, OutboundFrame } from "./node"; /** Signal opcode registry. */ export declare enum SignalType { Join = 100, Leave = 101, RoleChange = 102, Mute = 200, Unmute = 201, StreamStart = 300, StreamStop = 301, CodecUpdate = 400 } /** Outcome of {@link GspClient.accept}. */ export interface GspAcceptResult { status: "new" | "error" | string; signal?: string; signalCode?: SignalType; sender?: number; roleClaim?: number; requestId?: number; reason?: string; } /** * Group Signaling Protocol client. * * Tracks ``request_id`` deduplication and exposes accepted signals to the * application. */ export declare class GspClient { /** Native handle (i32). */ handle: number; private constructor(); /** Create a fresh GSP client. */ static create(): GspClient; /** * Send a signal without signal-specific args. * @param codec - payload encoding (default: CBOR). */ send(node: GroupNode, mls: MlsContext, target: number, signal: SignalType, roleClaim: number, requestId: number, codec?: PayloadCodec): OutboundFrame; /** * Send a signal with opcode-specific args bytes. * @param codec - payload encoding (default: CBOR). */ sendWithArgs(node: GroupNode, mls: MlsContext, target: number, signal: SignalType, roleClaim: number, requestId: number, args: Buffer, codec?: PayloadCodec): OutboundFrame; /** * Accept a plaintext payload delivered by the GBP layer. * `currentEpoch` lets the client auto-reset its dedup state when the * epoch advances. `codec` must match the `codec` field of the * `payload_received` event. */ accept(plaintext: Buffer, currentEpoch: bigint | number, codec?: PayloadCodec): GspAcceptResult; /** Clear the request-id deduplication set. Intended for use after an epoch change. */ reset(): void; /** Release the native handle. Idempotent. */ close(): void; [Symbol.dispose](): void; } //# sourceMappingURL=gsp.d.ts.map