interface ILanguage {
    label: string;
    code: string;
    direction: string;
}
interface FallbackConfig {
    fallbackOrder?: string[];
    enableConsoleWarnings?: boolean;
    retryOnError?: boolean;
    maxRetries?: number;
}
export declare const useLanguageFallback: (config?: FallbackConfig) => {
    findBestAvailableLanguage: (languages: ILanguage[], preferredCode?: string) => ILanguage | null;
    createEmergencyFallback: () => ILanguage;
    createEnglishFallback: () => ILanguage;
    validateLanguageCode: (languages: ILanguage[], code: string) => boolean;
    getSavedLanguage: (languages: ILanguage[]) => string | null;
    ensureEnglishAvailable: (languages: ILanguage[]) => ILanguage[];
    shouldRetry: () => boolean;
    incrementRetry: () => void;
    resetRetry: () => void;
    retryCount: number;
    config: {
        fallbackOrder: string[];
        enableConsoleWarnings: boolean;
        retryOnError: boolean;
        maxRetries: number;
    };
};
export declare const useLanguageState: () => {
    isInitialized: boolean;
    hasError: boolean;
    errorMessage: string;
    markInitialized: () => void;
    setError: (error: string) => void;
    clearError: () => void;
};
declare const _default: {
    useLanguageFallback: (config?: FallbackConfig) => {
        findBestAvailableLanguage: (languages: ILanguage[], preferredCode?: string) => ILanguage | null;
        createEmergencyFallback: () => ILanguage;
        createEnglishFallback: () => ILanguage;
        validateLanguageCode: (languages: ILanguage[], code: string) => boolean;
        getSavedLanguage: (languages: ILanguage[]) => string | null;
        ensureEnglishAvailable: (languages: ILanguage[]) => ILanguage[];
        shouldRetry: () => boolean;
        incrementRetry: () => void;
        resetRetry: () => void;
        retryCount: number;
        config: {
            fallbackOrder: string[];
            enableConsoleWarnings: boolean;
            retryOnError: boolean;
            maxRetries: number;
        };
    };
    useLanguageState: () => {
        isInitialized: boolean;
        hasError: boolean;
        errorMessage: string;
        markInitialized: () => void;
        setError: (error: string) => void;
        clearError: () => void;
    };
};
export default _default;
export type { ILanguage, FallbackConfig };
