export { ProviderError, IdleTimeoutError, TotalTimeoutError } from './errors.js'; export type ProviderFactory = (id: string, providerStr: string) => ProviderRuntime; export interface ProviderUsage { inputTokens: number; outputTokens: number; cachedInputTokens: number; costUsd: number; } export interface ProviderQueryOptions { model?: string; context?: string; systemPrompt?: string; additionalArgs?: string[]; onOutput?: (line: string, level: 'stdout' | 'stderr') => void; onPid?: (pid: number) => void; onCommand?: (command: string) => void; onUsage?: (usage: ProviderUsage) => void; onExitCode?: (code: number) => void; onModel?: (model: string) => void; timeoutMs?: number; } export interface ProviderRuntime { query(message: string, options?: ProviderQueryOptions): Promise; execute(message: string, options?: ProviderQueryOptions): Promise; } export declare function registerProviderFactory(namespace: string, factory: ProviderFactory): void; export declare function createProvider(providerStr: string): ProviderRuntime;