/**
 * Internationalization (i18n) Module
 *
 * Lightweight i18n system for Code Buddy.
 * Supports multiple languages with fallback to English.
 */
import { EventEmitter } from 'events';
/**
 * Supported locales
 */
export type Locale = 'en' | 'fr' | 'de' | 'es' | 'ja' | 'zh';
/**
 * Translation key categories
 */
export interface TranslationKeys {
    common: {
        yes: string;
        no: string;
        cancel: string;
        confirm: string;
        error: string;
        warning: string;
        success: string;
        info: string;
        loading: string;
        processing: string;
        done: string;
        help: string;
        exit: string;
        back: string;
        next: string;
        save: string;
        delete: string;
        edit: string;
        create: string;
        search: string;
        filter: string;
        sort: string;
        refresh: string;
        settings: string;
        options: string;
    };
    cli: {
        welcome: string;
        goodbye: string;
        inputPrompt: string;
        thinking: string;
        executing: string;
        toolUse: string;
        toolResult: string;
        noApiKey: string;
        invalidApiKey: string;
        rateLimited: string;
        networkError: string;
        timeout: string;
        sessionSaved: string;
        sessionLoaded: string;
        historyCleared: string;
        modelChanged: string;
        costWarning: string;
        costLimit: string;
    };
    tools: {
        readingFile: string;
        writingFile: string;
        creatingFile: string;
        deletingFile: string;
        executingCommand: string;
        searchingFiles: string;
        webSearching: string;
        fetchingUrl: string;
        analyzing: string;
        generating: string;
        fileNotFound: string;
        permissionDenied: string;
        commandFailed: string;
        confirmDelete: string;
        confirmOverwrite: string;
        confirmExecute: string;
    };
    errors: {
        unknown: string;
        notFound: string;
        invalidInput: string;
        unauthorized: string;
        forbidden: string;
        serverError: string;
        connectionFailed: string;
        parseError: string;
        validationFailed: string;
        operationCancelled: string;
        featureNotAvailable: string;
    };
    help: {
        title: string;
        description: string;
        commands: string;
        examples: string;
        tips: string;
        moreInfo: string;
        version: string;
        usage: string;
    };
}
/**
 * Full translations object
 */
export type Translations = TranslationKeys;
declare const en: Translations;
declare const fr: Translations;
declare const translations: Record<Locale, Translations>;
/**
 * Internationalization manager
 */
declare class I18nManager extends EventEmitter {
    private currentLocale;
    private fallbackLocale;
    constructor();
    /**
     * Detect locale from environment
     */
    private detectLocale;
    /**
     * Get current locale
     */
    getLocale(): Locale;
    /**
     * Set locale
     */
    setLocale(locale: Locale): void;
    /**
     * Get available locales
     */
    getAvailableLocales(): Locale[];
    /**
     * Get translation for a key path
     * @param keyPath - Dot-separated key path (e.g., 'cli.welcome')
     * @param params - Optional parameters for interpolation
     */
    t(keyPath: string, params?: Record<string, string | number>): string;
    /**
     * Get all translations for a category
     */
    getCategory<K extends keyof Translations>(category: K): Translations[K];
}
/**
 * Get or create I18n manager singleton
 */
export declare function getI18n(): I18nManager;
/**
 * Shorthand for translation
 */
export declare function t(keyPath: string, params?: Record<string, string | number>): string;
/**
 * Reset I18n manager (for testing)
 */
export declare function resetI18n(): void;
export { en, fr, translations };
export default I18nManager;
