import { AiProviderConfig } from './ai-provider-translator'; interface IncompleteKey { key: string; apps: string[]; existingFile: string | null; existingLangs: Record; missingLangs: string[]; } interface FixResult { key: string; targetPath: string; langsWritten: number; langsSkipped: number; deletedFrom: string[]; dryRun: boolean; } /** A `parseYaml` value as plain text — the quotes are YAML's, not the message's. */ export declare function unquoteYaml(value: string): string; export declare class I18nFixer { private readonly workspaceRoot; private readonly logger; private referenceLanguages; constructor(workspaceRoot: string, verbose?: boolean); private getReferenceLanguages; scan(): Promise; private getAppDirs; private extractKeysFromDir; private extractFromTemplate; private extractFromTs; private findExistingYaml; fix(options?: { dryRun?: boolean; verbose?: boolean; limit?: number; llamaHost?: string; /** The AiProvider m-one-ui speaks; without one, a llama-server is auto-detected. */ aiProvider?: AiProviderConfig; /** Only these keys (i18n file names); stale-copy cleanup is skipped. */ keys?: string[]; }): Promise; private cleanupStaleCopies; private pathExists; private walkFiles; } export {}; //# sourceMappingURL=i18n-fixer.d.ts.map