import type { Provider } from '../types';
import type { CommandOptions, Config } from '../types';
import type { BaseModelProvider } from '../providers/base';
interface ProviderInfo {
    provider: Provider;
    available: boolean;
    defaultModel?: string;
}
export declare const PROVIDER_PREFERENCE: Record<string, Provider[]>;
export declare function getDefaultModel(provider: Provider): string;
export declare function getAllProviders(): ProviderInfo[];
export declare function getProviderInfo(provider: string): ProviderInfo | undefined;
export declare function isProviderAvailable(provider: string): boolean;
export declare function getAvailableProviders(): ProviderInfo[];
export declare function getNextAvailableProvider(commandType: keyof typeof PROVIDER_PREFERENCE, currentProvider?: Provider): Provider | undefined;
export declare function resolveMaxTokens(options: CommandOptions | undefined, config: Config, providerName: Provider, providerInstance: BaseModelProvider, commandName: 'ask' | 'repo' | 'doc' | 'plan' | 'web', configKey?: 'maxTokens' | 'fileMaxTokens' | 'thinkingMaxTokens'): number;
export {};
