import { ProviderInterface, ChatOptions } from './types';
export declare abstract class Provider implements ProviderInterface {
    abstract get name(): string;
    getName(): string;
    abstract checkAvailability(): Promise<boolean>;
    abstract execute(prompt: string, workspace: string, additionalDirectories?: string[], signal?: AbortSignal): Promise<string>;
    abstract chat(prompt: string, options?: ChatOptions): Promise<string>;
    protected spawnProcess(command: string, args: string[], signal?: AbortSignal): Promise<{
        stdout: string;
        stderr: string;
        code: number | null;
    }>;
    protected spawnProcessWithStreaming(command: string, args: string[], signal?: AbortSignal): Promise<{
        stdout: string;
        stderr: string;
        code: number | null;
    }>;
    protected spawnProcessWithStreamingAndStdin(command: string, args: string[], stdinContent: string, signal?: AbortSignal): Promise<{
        stdout: string;
        stderr: string;
        code: number | null;
    }>;
    protected formatError(error: unknown): string;
    protected extractFilesChanged(output: string): string[];
}
