export type Language = 'en' | 'ja';
interface Messages {
    [key: string]: string | Messages;
}
export declare class I18n {
    private static instance;
    private messages;
    private currentLang;
    private localesDir;
    private initialized;
    private constructor();
    static getInstance(): I18n;
    init(lang?: Language): Promise<void>;
    /**
     * Synchronous initialization.
     * Needed so command descriptions are localized in --help, which commander
     * builds at module load time before any async preAction hook runs.
     */
    initSync(lang?: Language): void;
    private loadMessages;
    private loadMessagesSync;
    setLanguage(lang: Language): Promise<void>;
    getLanguage(): Language;
    t(key: string, params?: Record<string, unknown>): string;
    getNamespace(namespace: string): Messages | Record<string, never>;
    formatPriority(priority: string): string;
    getAvailableLanguages(): Promise<Language[]>;
    isInitialized(): boolean;
}
export {};
//# sourceMappingURL=i18n.d.ts.map