import { PropsWithChildren, ReactElement, ReactNode } from '../../packages/preact/preact/compat';
import { Theme } from '../theme';
import * as locales from "./../locales";
export interface ThemeProviderProps {
    theme?: "light" | "dark";
    themeOverrides?: Partial<Theme>;
    enableFontSmoothing?: boolean;
    children?: ReactNode | ReactElement | ReactElement[] | ReactNode[];
}
export declare const ThemeProvider: ({ children, theme, themeOverrides, enableFontSmoothing, }: ThemeProviderProps) => import("preact").JSX.Element;
export type TranslationFile = {
    [K in keyof typeof locales.en]: string;
};
export declare const LanguageCodes: readonly ["ab", "aa", "af", "sq", "am", "ar", "hy", "as", "ay", "az", "ba", "eu", "bn", "dz", "bh", "bi", "br", "bg", "my", "be", "km", "ca", "zh", "co", "hr", "cs", "da", "nl", "en", "eo", "et", "fo", "fj", "fi", "fr", "fy", "gd", "gl", "ka", "de", "el", "kl", "gn", "gu", "ha", "iw", "hi", "hu", "is", "in", "ia", "ie", "ik", "ga", "it", "ja", "jw", "kn", "ks", "kk", "rw", "ky", "rn", "ko", "ku", "lo", "la", "lv", "ln", "lt", "mk", "mg", "ms", "ml", "mt", "mi", "mr", "mo", "mn", "na", "ne", "no", "oc", "or", "om", "ps", "fa", "pl", "pt", "pa", "qu", "rm", "ro", "ru", "sm", "sg", "sa", "sr", "sh", "st", "tn", "sn", "sd", "si", "ss", "sk", "sl", "so", "es", "su", "sw", "sv", "tl", "tg", "ta", "tt", "te", "th", "bo", "ti", "to", "ts", "tr", "tk", "tw", "uk", "ur", "uz", "vi", "vo", "cy", "wo", "xh", "ji", "yo", "zu"];
export type CustomLanguageFormats = {
    [k in (typeof LanguageCodes)[number]]?: Partial<TranslationFile>;
};
export interface CustomTranslations {
    customTranslations: Partial<CustomLanguageFormats>;
    locale: (typeof LanguageCodes)[number];
    defaultLocale: (typeof LanguageCodes)[number];
}
export type SupportedLanguageFormats = {
    [k in keyof typeof locales]: TranslationFile;
};
type locale = keyof typeof locales;
export interface SupportedTranslations {
    locale?: locale;
    defaultLocale?: locale;
}
export type IntlProviderProps<Type> = Type extends CustomTranslations ? PropsWithChildren<CustomTranslations> : PropsWithChildren<SupportedTranslations>;
export declare const IntlProvider: <T extends CustomTranslations | SupportedTranslations = SupportedTranslations>({ children, ...props }: IntlProviderProps<T>) => import("preact").JSX.Element;
export {};
