/**
 * Remote CLI Provider — proxies provider operations to a remote desktop node via WS.
 *
 * Instead of spawning a local child process, this adapter sends operations
 * (start-session, send-turn, stop-session, list-models) to a remote Electron
 * desktop client that actually runs the CLI provider (codex / claude-code).
 *
 * Events from the child process are relayed back through the WS control plane
 * via the `provider.event` message type.
 */
import type { CliProviderAdapter, ProviderId, ProviderInfo, ProviderModelInfo, ProviderSession, ProviderEvent, StartSessionOptions } from "./contracts.js";
import type { WsControlPlane } from "../ws.js";
export declare class RemoteCliProvider implements CliProviderAdapter {
    private ws;
    private nodeId;
    readonly id: ProviderId;
    readonly info: ProviderInfo;
    private emitter;
    private sessions;
    constructor(ws: WsControlPlane, nodeId: string, providerId: ProviderId);
    checkAvailability(): Promise<boolean>;
    listModels(): Promise<ProviderModelInfo[]>;
    startSession(options: StartSessionOptions): Promise<ProviderSession>;
    sendTurn(sessionId: string, message: string): Promise<void>;
    interruptTurn(sessionId: string): Promise<void>;
    respondToApproval(_sessionId: string, _requestId: string, _approved: boolean): Promise<void>;
    stopSession(sessionId: string): Promise<void>;
    onEvent(handler: (event: ProviderEvent) => void): () => void;
    private emit;
    /**
     * Handle a remote event relayed from the client via WS.
     * Uses the shared codex event mapper to translate raw JSON-RPC notifications.
     */
    private handleRemoteEvent;
    private parseDirectProviderEvent;
}
//# sourceMappingURL=remote-cli-provider.d.ts.map