/**
 * Copilot CLI Provider — wraps GitHub Copilot CLI as a Jait provider.
 *
 * Spawns `copilot -p <message> --stream on -s` for streaming NDJSON output.
 *
 * Copilot CLI session events:
 *   { type: "assistant.turn_start", ... }
 *   { type: "assistant.message_delta", data: { deltaContent } }
 *   { type: "assistant.message", data: { content } }
 *   { type: "tool.execution_start", data: { toolCallId, toolName, arguments } }
 *   { type: "tool.execution_complete", data: { toolCallId, success, result?, error? } }
 *   { type: "assistant.turn_end", ... }
 */
import type { CliProviderAdapter, ProviderInfo, ProviderModelInfo, ProviderSession, ProviderEvent, StartSessionOptions } from "./contracts.js";
export declare class CopilotProvider implements CliProviderAdapter {
    readonly id: "copilot";
    readonly info: ProviderInfo;
    private sessions;
    private emitter;
    private copilotPath;
    checkAvailability(): Promise<boolean>;
    listModels(): Promise<ProviderModelInfo[]>;
    startSession(options: StartSessionOptions): Promise<ProviderSession>;
    sendTurn(sessionId: string, message: string, _attachments?: 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;
    private getState;
    private processBuffer;
    private handleEvent;
    private buildMcpConfig;
    private checkAuth;
    /** Parse model choices from `copilot --help` output */
    private parseModelsFromHelp;
    private testCommand;
}
export declare function buildCopilotExitError(code: number | null, signal: NodeJS.Signals | null, stderr: string): string;
export declare function parseCopilotModelsFromHelp(output: string): ProviderModelInfo[];
//# sourceMappingURL=copilot-provider.d.ts.map