import type { ApiProvider, CallApiContextParams, CallApiOptionsParams, ProviderResponse } from '../types';
import type { EnvOverrides } from '../types/env';
interface GroqCompletionOptions {
    apiKey?: string;
    model?: string;
    temperature?: number;
    /** @deprecated Use max_completion_tokens instead */
    max_tokens?: number;
    max_completion_tokens?: number;
    top_p?: number;
    tools?: Array<{
        type: 'function';
        function: {
            name: string;
            description?: string;
            parameters?: Record<string, any>;
        };
    }>;
    tool_choice?: 'none' | 'auto' | {
        type: 'function';
        function: {
            name: string;
        };
    };
    functionToolCallbacks?: Record<string, (arg: string) => Promise<string>>;
    systemPrompt?: string;
}
export declare class GroqProvider implements ApiProvider {
    private groq;
    private modelName;
    config: GroqCompletionOptions;
    apiKey?: string;
    constructor(modelName: string, options?: {
        config?: GroqCompletionOptions;
        id?: string;
        env?: EnvOverrides;
    });
    id: () => string;
    getModelName(): string;
    getApiKey(): string | undefined;
    toString(): string;
    toJSON(): {
        provider: string;
        model: string;
        config: {
            apiKey?: string;
            model?: string;
            temperature?: number;
            /** @deprecated Use max_completion_tokens instead */
            max_tokens?: number;
            max_completion_tokens?: number;
            top_p?: number;
            tools?: Array<{
                type: "function";
                function: {
                    name: string;
                    description?: string;
                    parameters?: Record<string, any>;
                };
            }>;
            tool_choice?: "none" | "auto" | {
                type: "function";
                function: {
                    name: string;
                };
            };
            functionToolCallbacks?: Record<string, (arg: string) => Promise<string>>;
            systemPrompt?: string;
        };
    };
    callApi(prompt: string, context?: CallApiContextParams, options?: CallApiOptionsParams): Promise<ProviderResponse>;
}
export {};
//# sourceMappingURL=groq.d.ts.map