import React from 'react';
import { Locale } from '../locales';
import { ToastContainerInstance } from '../toaster/ToastContainer';
export interface CustomValue<T = Locale> {
    /** Language configuration */
    locale: T;
    /** Support right-to-left */
    rtl: boolean;
    /**
     * Return the formatted date string in the given format. The result may vary by locale.
     *
     * Example:
     *
     *  import format from 'date-fns/format';
     *  import eo from 'date-fns/locale/eo'
     *
     *  function formatDate(date, formatStr) {
     *    return format(date, formatStr, { locale: eo });
     *  }
     *
     * */
    formatDate: (date: Date | number, format: string) => string;
    /**
     * Return the date parsed from string using the given format string.
     *
     * Example:
     *
     *  import parse from 'date-fns/parse';
     *  import eo from 'date-fns/locale/eo'
     *
     *  function parseDate(date, formatStr) {
     *    return parse(date, formatStr, new Date(), { locale: eo });
     *  }
     *
     * */
    parseDate: (dateString: string, formatString: string) => Date;
    /**
     * A Map of toast containers
     */
    toasters?: React.MutableRefObject<Map<string, ToastContainerInstance>>;
}
export interface CustomProviderProps<T = Locale> extends Partial<CustomValue<T>> {
    /** Supported themes */
    theme?: 'light' | 'dark' | 'high-contrast';
    /** The prefix of the component CSS class */
    classPrefix?: string;
    /** Primary content */
    children?: React.ReactNode;
    /** Sets a container for toast rendering */
    toastContainer?: HTMLElement | (() => HTMLElement | null) | null;
}
declare const CustomContext: React.Context<CustomProviderProps<{
    common?: {
        loading: string;
        emptyMessage: string;
    } | undefined;
    Plaintext?: {
        unfilled: string;
        notSelected: string;
        notUploaded: string;
    } | undefined;
    Pagination?: {
        more: string;
        prev: string;
        next: string;
        first: string;
        last: string;
        limit: string;
        total: string;
        skip: string;
    } | undefined;
    Calendar?: {
        sunday: string;
        monday: string;
        tuesday: string;
        wednesday: string;
        thursday: string;
        friday: string;
        saturday: string;
        ok: string;
        today: string;
        yesterday: string;
        hours: string;
        minutes: string;
        seconds: string;
        formattedMonthPattern: string;
        formattedDayPattern: string;
        dateLocale: any;
    } | undefined;
    DatePicker?: {
        sunday: string;
        monday: string;
        tuesday: string;
        wednesday: string;
        thursday: string;
        friday: string;
        saturday: string;
        ok: string;
        today: string;
        yesterday: string;
        hours: string;
        minutes: string;
        seconds: string;
        formattedMonthPattern: string;
        formattedDayPattern: string;
        dateLocale: any;
    } | undefined;
    DateRangePicker?: {
        last7Days: string;
        sunday: string;
        monday: string;
        tuesday: string;
        wednesday: string;
        thursday: string;
        friday: string;
        saturday: string;
        ok: string;
        today: string;
        yesterday: string;
        hours: string;
        minutes: string;
        seconds: string;
        formattedMonthPattern: string;
        formattedDayPattern: string;
        dateLocale: any;
    } | undefined;
    Picker?: {
        noResultsText: string;
        placeholder: string;
        searchPlaceholder: string;
        checkAll: string;
    } | undefined;
    InputPicker?: {
        newItem: string;
        /**
         * A Map of toast containers
         */
        createOption: string;
    } | undefined;
    Uploader?: {
        inited: string;
        progress: string;
        error: string;
        complete: string;
        emptyFile: string;
        upload: string;
    } | undefined;
    CloseButton?: {
        closeLabel: string;
    } | undefined;
    Breadcrumb?: {
        expandText: string;
    } | undefined;
    Toggle?: {
        on: string;
        off: string;
    } | undefined;
}>>;
declare const CustomProvider: (props: Omit<CustomProviderProps, 'toasters'>) => JSX.Element;
export { CustomContext };
export default CustomProvider;
