import type { EventBus } from "@earendil-works/pi-coding-agent"; import type { CapabilityManifest, ToolResult } from "../types.js"; import { type GatewayRpcMethodName } from "./contract.js"; import { type GatewayInteractionBridge, type ToolGateway } from "./gateway.js"; export type GatewayRpcMethod = GatewayRpcMethodName; export interface GatewayDiscoveryRequest { protocolVersion: string; requestId: string; respond(response: GatewayDiscoveryResponse): void; } export interface GatewayDiscoveryResponse { protocolVersion: string; requestId: string; descriptor: CapabilityManifest; } export interface GatewayRpcRequest { protocolVersion: string; requestId: string; providerId: string; instanceId: string; contextRevision: number; method: GatewayRpcMethod; params: unknown; deadlineAt: number; respond(response: GatewayRpcResponse): void; } export interface GatewayRpcResponse { protocolVersion: string; requestId: string; providerId: string; instanceId: string; contextRevision: number; result: ToolResult; } export interface GatewayLifecycleEvent { descriptor: CapabilityManifest; } export interface GatewayProviderOptions { interaction?: GatewayInteractionBridge; now?: () => number; maxConcurrentRpc?: number; } export interface GatewayProviderRegistration { descriptor: CapabilityManifest; deactivate(): void; } export interface GatewayDiscoveryAggregate { status: "none" | "unique" | "conflict"; conflict: boolean; descriptors: CapabilityManifest[]; descriptor?: CapabilityManifest; } export declare function aggregateGatewayDiscoveryResponses(responses: readonly GatewayDiscoveryResponse[]): GatewayDiscoveryAggregate; export declare function registerGatewayProvider(events: EventBus, gateway: ToolGateway, options?: GatewayProviderOptions): GatewayProviderRegistration; //# sourceMappingURL=provider.d.ts.map