import { EventEmitter } from 'events';
export interface CopilotCompletionRequest {
    prompt: string;
    suffix?: string;
    max_tokens?: number;
    temperature?: number;
    top_p?: number;
    n?: number;
    stop?: string[];
    language?: string;
    file_path?: string;
}
export interface CopilotCompletionResponse {
    id: string;
    choices: Array<{
        text: string;
        index: number;
        finish_reason: 'stop' | 'length';
    }>;
    usage?: {
        prompt_tokens: number;
        completion_tokens: number;
        total_tokens: number;
    };
}
export interface CopilotProxyConfig {
    port: number;
    host: string;
    authToken?: string;
    maxTokens: number;
    onCompletion: (req: CopilotCompletionRequest) => Promise<CopilotCompletionResponse>;
}
export declare class CopilotProxy extends EventEmitter {
    private server;
    private config;
    private requestCount;
    constructor(config: CopilotProxyConfig);
    start(): Promise<void>;
    stop(): Promise<void>;
    private handleRequest;
    private parseBody;
    private authenticate;
    getRequestCount(): number;
    isRunning(): boolean;
}
