/** * Lightweight i18n for compact-format strings and short user-facing messages. * * Locale resolution order: * 1. MCP_LOCALE env var (e.g. "fr", "fr_FR", "en-US") * 2. LC_ALL / LANG env var (POSIX standard, e.g. "fr_FR.UTF-8") * 3. fallback "en" * * Only the first 2 chars are inspected. Unsupported locale → falls back to "en". * * The MCP server returns these strings to Claude as data; Claude already * translates to whatever language the human is using. Localizing here is a * minor optimization (saves the LLM mental translation hop) and a UX nicety * for direct stdio inspection. */ export declare const SUPPORTED_LOCALES: readonly ["en", "fr", "es", "de"]; export type Locale = (typeof SUPPORTED_LOCALES)[number]; export declare const LOCALE: Locale; interface Messages { noLists: string; lists: (n: number) => string; noTasks: string; tasks: (n: number) => string; noResults: string; results: (n: number) => string; noSubItems: string; noLinkedRes: string; noExtensions: string; summaryHeader: (date: string, due: number, overdue: number) => string; dueTodaySection: string; overdueSection: string; okErr: (ok: number, err: number) => string; okHeader: string; errHeader: string; noDetail: string; taskDeleted: (id: string) => string; subItemDeleted: (id: string) => string; linkedDeleted: (id: string) => string; extensionDeleted: (name: string) => string; moved: (compact: string) => string; error: (msg: string) => string; unknownTool: (name: string) => string; allTasksHeader: (lists: number, tasks: number) => string; } export declare const t: Messages; export {};