/**
 * Jait Provider — wraps Jait's own runAgentLoop as a provider adapter.
 *
 * This is the default provider that uses the existing OpenAI-compatible
 * agent loop with Jait's full tool registry, consent, and memory.
 * It doesn't spawn a child process — it runs in-process.
 */
import { type AppConfig } from "../config.js";
import type { ThreadService } from "../services/threads.js";
import type { UserService } from "../services/users.js";
import type { ToolContext, ToolResult } from "../tools/contracts.js";
import type { ToolRegistry } from "../tools/registry.js";
import type { CliProviderAdapter, ProviderInfo, ProviderModelInfo, ProviderSession, ProviderEvent, StartSessionOptions } from "./contracts.js";
export interface JaitProviderDeps {
    config: AppConfig;
    threadService: ThreadService;
    userService?: UserService;
    toolRegistry?: ToolRegistry;
    toolExecutor?: (toolName: string, input: unknown, context: ToolContext, options?: {
        dryRun?: boolean;
        consentTimeoutMs?: number;
    }) => Promise<ToolResult>;
}
export declare class JaitProvider implements CliProviderAdapter {
    private readonly deps;
    readonly id: "jait";
    readonly info: ProviderInfo;
    private emitter;
    private sessions;
    constructor(deps: JaitProviderDeps);
    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;
    private buildLlmConfig;
    private executeTool;
    private forwardAgentLoopEvent;
}
/** Models available when using OpenRouter as the base URL or API key. */
export declare const OPENROUTER_MODELS: ProviderModelInfo[];
//# sourceMappingURL=jait-provider.d.ts.map