import type { Command } from 'commander';
import { ApiProviderConfig } from './ApiProviderConfig';
import { type Env } from './env';
import { AiProvider } from './getModel';
export interface CliOptions {
    config?: string | string[];
    apiProvider?: string;
    model?: string;
    apiKey?: string;
    maxMessageCount?: number;
    budget?: number;
    verbose?: number;
    baseDir?: string;
    agent?: string;
    silent?: boolean;
    file?: string[];
    json?: boolean;
    yes?: boolean | undefined;
}
export declare function addSharedOptions(command: Command): Command;
export declare function parseOptions(options: CliOptions, { cwdArg, commandName }?: {
    cwdArg?: string;
    commandName?: string;
}, home?: string, env?: Partial<Env>): Promise<{
    maxMessageCount: number;
    budget: number;
    verbose: number;
    config: import("@polka-codes/cli-shared").LoadedConfig;
    providerConfig: ApiProviderConfig;
    commandConfig: {
        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;
    file: string[] | undefined;
}>;
//# sourceMappingURL=options.d.ts.map