import { LangAndText, Locale } from '@mesalvo/ts-definitions';
import { Language, Translation } from '../../types';
export interface DefaultTranslationMap {
}
export declare class MissingMesalvoProviderError extends Error {
    constructor();
}
/**
 * Hook that returns a translation function `t()` and language utilities.
 *
 * **Built-in Translations:**
 * The hook automatically includes translations for common UI elements in:
 * - English (en)
 * - Spanish (es)
 * - German (de)
 * - Italian (it)
 *
 * **Frontend Override:**
 * If your frontend provides translations with the same keys, they will override
 * the library translations. This allows you to customize any text while still
 * benefiting from the default translations.
 *
 * @template T - Optional translation dictionary for type safety
 *
 * @example
 * ```tsx
 * // Without overrides - uses library translations
 * const { t } = useTranslate();
 * t('save'); // Returns "Save" (en), "Guardar" (es), etc.
 *
 * // With overrides - frontend translations take precedence
 * <MesalvoProvider translations={{ en: { save: "Save Now" } }}>
 *   {() => {
 *     const { t } = useTranslate();
 *     return t('save'); // Returns "Save Now" in English
 *   }}
 * </MesalvoProvider>
 * ```
 */
export declare function useTranslate<T extends Record<string, string> = DefaultTranslationMap extends Record<string, string> ? DefaultTranslationMap : Record<string, string>>(): {
    allLanguages: Language[];
    changeLanguage: (locale: Locale) => void;
    getCurrentLabel: (arr: LangAndText[]) => string | undefined;
    getDictionary: (locale?: Locale) => Translation;
    getInAllLanguages: (key: string) => LangAndText[];
    goNextLanguage: () => void;
    lang: Language;
    languagesGrouped: (langs: Language[], forceCountry?: boolean) => Record<string, Language[]>;
    languagesWithTranslations: Language[];
    t: (key: keyof T extends never ? string : keyof T, defaultLocale?: Locale, fallbackLocale?: Locale) => string;
    translate: (key: keyof T extends never ? string : keyof T, defaultLocale?: Locale, fallbackLocale?: Locale) => string;
};
//# sourceMappingURL=use-translate.d.ts.map