import { LanguageConfig } from '../type';
/**
 * Language entity holds language configuration
 */
export declare class Language {
    private defaultLang;
    private configs;
    private indices;
    constructor(defaultLang: string, configs: Record<string, LanguageConfig>);
    /**
     * Get all language configurations
     */
    languages(): LanguageConfig[];
    /**
     * Get default language
     */
    defaultLanguage(): string;
    /**
     * Check if a language is valid
     */
    isLanguageValid(lang: string): boolean;
    /**
     * Get other language keys (excluding default)
     */
    otherLanguageKeys(): string[];
    /**
     * Get relative directory for a language
     */
    getRelDir(name: string, langKey: string): string;
    /**
     * Validate language configuration
     */
    validate(): boolean;
    /**
     * Set language indices (ordered list)
     */
    private setIndices;
    /**
     * Get language keys in order
     */
    languageKeys(): string[];
    /**
     * Get language indexes
     */
    languageIndexes(): number[];
    /**
     * Get language index by language code
     */
    getLanguageIndex(lang: string): number;
    /**
     * Get language by index
     */
    getLanguageByIndex(idx: number): string;
    /**
     * Get language name by language code
     */
    getLanguageName(lang: string): string;
    /**
     * Get language configuration by language code
     */
    getLanguageConfig(lang: string): LanguageConfig | undefined;
    /**
     * Get all language configurations
     */
    getConfigs(): Record<string, LanguageConfig>;
}
/**
 * Create a new Language instance from provider data
 */
export declare function newLanguage(data: any): Language;
//# sourceMappingURL=language.d.ts.map