export interface TypertGatewayRequest { namespace: string; method: string; /** Typert Remote payloads require one plain object under `args`. */ args: Readonly>; signal?: AbortSignal; peer?: unknown; uplink?: AsyncIterable; } export type TypertRpcResult = { ok: true; value?: unknown; attachments?: readonly { path: readonly (string | number)[]; bytes: Uint8Array; }[]; } | { ok: false; error: { code: string; message: string; details: Record; }; }; /** Legacy carrier open (≤0.1.6): the third argument is the cancellation signal. */ export type LegacyWireStreamOpen = (endpoint: string, payload: unknown, signal: AbortSignal) => Promise>; /** * dsh 0.1.7-rc.1 carrier open: the third argument is the Client uplink and the * cancellation signal moves to the fifth position. Passing an `AbortSignal` as * the third argument makes the Host throw `signals[0] is not of type AbortSignal`. */ export type Rc1WireStreamOpen = (endpoint: string, payload: unknown, uplink: AsyncIterable, peer: unknown, signal: AbortSignal) => Promise>; /** Carrier open signature of the running Harness release. */ export type TypertWireStreamOpen = LegacyWireStreamOpen | Rc1WireStreamOpen; export interface TypertGatewayWireStreamLike { open: TypertWireStreamOpen; failure(error: unknown): { code: string; message: string; details: Record; }; } /** Public Gateway face shared by supported Harness Typert releases. */ export interface TypertGatewayLike { invoke(request: TypertGatewayRequest): Promise; stream?(request: TypertGatewayRequest): Promise>; wireStream?: TypertGatewayWireStreamLike; } /** Carrier-level face captured from the alpha Gateway before target switching. */ export interface LocalTypertGateway extends TypertGatewayLike { dispatch(endpoint: string, payload: unknown, signal: AbortSignal): Promise; open(endpoint: string, payload: unknown, signal: AbortSignal, uplink?: AsyncIterable): Promise>; failure(error: unknown): { code: string; message: string; details: Record; }; supportsCarrier: boolean; peer?: unknown; createPeer?(): LocalTypertGateway; dispose?(): Promise; } export interface RemoteTypertGatewayTarget { invoke(request: TypertGatewayRequest): Promise; dispatch(endpoint: string, payload: unknown, signal: AbortSignal): Promise; open(endpoint: string, payload: unknown, signal: AbortSignal): Promise>; } //# sourceMappingURL=typert-gateway-contract.d.ts.map