import { AIProvider, AIResponse, AgenticResult, ToolLoopConfig } from '../ai-provider.interface';
export interface SamplingMessage {
    role: 'user' | 'assistant';
    content: {
        type: 'text';
        text: string;
    } | string;
}
export interface SamplingResult {
    content: {
        type: 'text';
        text: string;
    } | string;
}
export type SamplingHandler = (messages: SamplingMessage[], systemPrompt?: string, options?: Record<string, unknown>) => Promise<SamplingResult>;
export declare class HostProvider implements AIProvider {
    private static samplingHandler?;
    private debugMode;
    constructor();
    setSamplingHandler(handler: SamplingHandler): void;
    isInitialized(): boolean;
    getDefaultModel(): string;
    getProviderType(): string;
    getModelName(): string;
    private logDebugIfEnabled;
    sendMessage(message: string, operation?: string, evaluationContext?: {
        user_intent?: string;
        interaction_id?: string;
    }): Promise<AIResponse>;
    /**
     * Execute a tool loop with the host model
     *
     * The tool loop relies on a specific JSON format embedded in markdown code blocks:
     * ```json
     * {
     *   "tool": "toolName",
     *   "arguments": { ... }
     * }
     * ```
     */
    toolLoop(config: ToolLoopConfig): Promise<AgenticResult>;
}
//# sourceMappingURL=host-provider.d.ts.map