import type { CompletionChunk, CompletionParams, CompletionResponse } from '../types/index.js';
import type { OpenWebUIHttpClient } from './openwebui-http.js';
/**
 * Strategy interface for OpenWebUI's two backend modes.
 * Selected at construction based on `useOllamaProxy`.
 */
export interface OpenWebUIStrategy {
    validateConnection(): Promise<void>;
    complete(params: CompletionParams, defaultModel: string): Promise<CompletionResponse<string>>;
    stream(params: CompletionParams, defaultModel: string): AsyncIterable<CompletionChunk>;
}
export declare class OpenWebUIChatStrategy implements OpenWebUIStrategy {
    private readonly http;
    constructor(http: OpenWebUIHttpClient);
    validateConnection(): Promise<void>;
    complete(params: CompletionParams, defaultModel: string): Promise<CompletionResponse<string>>;
    stream(params: CompletionParams, defaultModel: string): AsyncIterable<CompletionChunk>;
}
export declare class OpenWebUIOllamaStrategy implements OpenWebUIStrategy {
    private readonly http;
    constructor(http: OpenWebUIHttpClient);
    validateConnection(): Promise<void>;
    complete(params: CompletionParams, defaultModel: string): Promise<CompletionResponse<string>>;
    stream(params: CompletionParams, defaultModel: string): AsyncIterable<CompletionChunk>;
}
