import type { ProviderName } from './types.js'; export interface ProviderPreferenceOptions { /** Overridable for tests; defaults to the XDG state home. */ stateHome?: string; } export interface ProviderChoice { provider: ProviderName; /** True when the value came from stored state rather than the command line. */ remembered: boolean; } export declare function readProviderPreference(repoRoot: string, options?: ProviderPreferenceOptions): ProviderName | undefined; export declare function writeProviderPreference(repoRoot: string, provider: ProviderName, options?: ProviderPreferenceOptions): void; /** * Resolve the provider for this invocation. * * An explicit flag always wins and becomes the new remembered value, so * `--provider local` is how you switch back. */ export declare function resolveProviderChoice(requested: string | undefined, repoRoot: string, options?: ProviderPreferenceOptions): ProviderChoice; /** * A one-line notice when a non-local provider was applied from memory, so a * remembered cloud provider is always visible before it spends anything. * * The tag carries the provider rather than describing it in prose, so the line * reads the same however many providers exist. The switch hint lists the * registry's names so it stays correct as providers are added. */ export declare function describeProviderChoice(choice: ProviderChoice): string | undefined;