/** * Audit an .xcstrings / .strings / .stringsdict catalog for localization gaps * * Examples: * - Audit xcstrings: catalogPath: "/path/to/Localizable.xcstrings" * - With source scan: catalogPath: "...", sourceDir: "./MyApp" * - Strict mode (error on findings): catalogPath: "...", strict: true * - Verbose output: catalogPath: "...", verbose: true * * Supports: * - .xcstrings (Xcode 15+ JSON catalog) * - .strings (legacy plist or text format) * - .stringsdict (pluralization plist) * * **Full documentation:** See analysis/localization-audit.md for detailed parameters and examples */ export declare function localizationAuditTool(args: any): Promise<{ content: { type: "text"; text: string; }[]; structuredContent: { totalKeys: number; localeCount: number; gapCount: number; placeholderMismatchCount: number; }; isError: boolean; }>; export declare const LOCALIZATION_AUDIT_DOCS = "\n# localization-audit\n\nAudit .xcstrings, .strings, or .stringsdict catalogs for localization gaps, placeholder mismatches,\nand unused or missing keys relative to Swift source code.\n\n## What it does\n\nPure file analysis \u2014 no simulator required. Parses localization catalogs and reports:\n- Per-locale missing/untranslated keys\n- Keys with needs_review, new, or stale states\n- Format-specifier placeholder count mismatches across locales\n- Keys in Swift source but absent from catalog (missing_from_catalog)\n- Keys in catalog but absent from Swift source (unused_in_source)\n\n## Parameters\n\n- **catalogPath** (string, required): Path to .xcstrings, .strings, or .stringsdict catalog file\n- **sourceDir** (string, optional): Swift source root for unused/missing key cross-reference\n- **strict** (boolean, optional): Set isError:true in response if any findings are present\n- **verbose** (boolean, optional): Include detailed per-key breakdown in summary text\n\n## Supported Catalog Formats\n\n- **.xcstrings**: Xcode 15+ JSON catalog with multi-locale support\n- **.strings**: Legacy single-locale plist (binary/XML/text format)\n- **.stringsdict**: Pluralization rules plist\n\n## Returns\n\nJSON response with:\n- `catalogPath`, `sourceLanguage`, `totalKeys`, `locales`\n- `gaps`: array of { key, locale, reason } objects\n- `missingFromCatalog`: keys in Swift source not in catalog\n- `unusedInSource`: keys in catalog not referenced in Swift source\n- `placeholderMismatches`: keys where placeholder counts differ across locales\n- `summary`: compact human-readable summary text\n\nstructuredContent: `{ totalKeys, localeCount, gapCount, placeholderMismatchCount }`\n\n## Examples\n\n### Audit .xcstrings catalog\n```typescript\nawait localizationAuditTool({\n catalogPath: '/path/to/Localizable.xcstrings'\n})\n```\n\n### Full audit with source cross-reference\n```typescript\nawait localizationAuditTool({\n catalogPath: '/path/to/Localizable.xcstrings',\n sourceDir: './MyApp',\n verbose: true\n})\n```\n\n### Strict mode (error on any findings)\n```typescript\nawait localizationAuditTool({\n catalogPath: '/path/to/Localizable.xcstrings',\n strict: true\n})\n```\n\n## Gap Reasons\n\n- **missing**: Key has no translation for that locale\n- **needs_review**: Translation exists but marked for review\n- **new**: Translation is new and unverified\n- **stale**: Translation is outdated relative to source\n\n## Placeholder Matching\n\nExtracts printf-style format specifiers (%@, %d, %s, %lld, positional %1$@, etc.)\nand reports keys where the count differs between source and a target locale.\nEmpty-value locales are skipped (gaps reported separately).\n"; export declare const LOCALIZATION_AUDIT_DOCS_MINI = "Audit .xcstrings/.strings/.stringsdict for gaps, placeholder mismatches, and unused keys. Use rtfm({ toolName: \"localization-audit\" }) for docs."; //# sourceMappingURL=localization-audit.d.ts.map