import { Language } from "../types";
type LanguageState = {
    /**
     * User selected language
     */
    selectedLanguage: Language | null;
    /**
     * Set the user selected language of the app
     * @param {string} code - language code
     */
    setSelectedLanguage: (code: string) => void;
    /**
     * Get the selected language. If no language is selected, returns the default language
     * @returns {Language} selected language or default language
     */
    getLanguage: () => Language;
    getIsLanguageSelected: () => boolean;
};
export type UseLanguageReturnType = {
    /**
     * Selected language, or default language if no language is selected
     */
    language: Language;
    /**
     * Supported languages for the app
     */
    supportedLanguages: Language[];
    /**
     * The default language of the app
     */
    defaultLanguage: Language;
    /**
     * Set the user selected language of the app
     * @param {string} code - language code
     */
    setSelectedLanguage: LanguageState["setSelectedLanguage"];
    /**
     * Whether a language is selected by the user or not
     */
    isLanguageSelected: boolean;
};
export declare const useLanguage: () => UseLanguageReturnType;
export declare const getLanguage: () => Language, setSelectedLanguage: (code: string) => void, getIsLanguageSelected: () => boolean;
export {};
