import type { ApiError, User } from '../../../models/interfaces';
import { type LanguageMetadata } from '../../../utils/languageUtils';
import type { StorageInterface } from '../utils/storageHelpers';
export interface UseLanguageManagementOptions {
    storage: StorageInterface | null;
    languageKey: string;
    onError?: (error: ApiError) => void;
    logger?: (message: string, error?: unknown) => void;
}
export interface UseLanguageManagementResult {
    currentLanguage: string;
    metadata: LanguageMetadata | null;
    languageName: string;
    nativeLanguageName: string;
    setLanguage: (languageId: string) => Promise<void>;
    applyLanguagePreference: (user: User | null) => Promise<void>;
    hydrateLanguage: () => Promise<void>;
}
/**
 * Manage UI language state, persistence, and metadata derivation.
 *
 * @param options - Configuration for storage access and error reporting
 */
export declare const useLanguageManagement: ({ storage, languageKey, onError, logger, }: UseLanguageManagementOptions) => UseLanguageManagementResult;
//# sourceMappingURL=useLanguageManagement.d.ts.map