import type { Config } from '@polka-codes/cli-shared';
import type { ConfigRule, ProviderConfig } from '@polka-codes/core';
import { AiProvider } from './getModel';
export declare class ApiProviderConfig {
    readonly defaultProvider?: AiProvider;
    readonly providers: Readonly<Partial<Record<AiProvider, ProviderConfig>>>;
    readonly commands?: Config['commands'];
    readonly defaultParameters: Record<string, unknown>;
    constructor(config: Config);
    getConfigForCommand(command: string): {
        provider: AiProvider;
        model: string;
        apiKey: string | undefined;
        location: string | undefined;
        project: string | undefined;
        keyFile: string | undefined;
        baseUrl: string | undefined;
        name: string | undefined;
        parameters: {
            [x: string]: unknown;
        };
        budget: number | undefined;
        rules: string | (string | {
            path: string;
        } | {
            url: string;
        } | {
            repo: string;
            path: string;
            tag?: string | undefined;
            commit?: string | undefined;
            branch?: string | undefined;
        })[] | undefined;
    } | undefined;
    resolveModelConfig(config: {
        provider?: string;
        model?: string;
        parameters?: Record<string, unknown>;
        budget?: number;
        rules?: ConfigRule[] | string;
    }): {
        provider: AiProvider;
        model: string;
        apiKey: string | undefined;
        location: string | undefined;
        project: string | undefined;
        keyFile: string | undefined;
        baseUrl: string | undefined;
        name: string | undefined;
        parameters: {
            [x: string]: unknown;
        };
        budget: number | undefined;
        rules: string | (string | {
            path: string;
        } | {
            url: string;
        } | {
            repo: string;
            path: string;
            tag?: string | undefined;
            commit?: string | undefined;
            branch?: string | undefined;
        })[] | undefined;
    } | undefined;
}
//# sourceMappingURL=ApiProviderConfig.d.ts.map