import IntlRelativeTimeFormat from '@formatjs/intl-relativetimeformat';
export { IntlRelativeTimeFormat, IntlMessageFormat };
import IntlMessageFormat, { Formats as MessageFormats } from 'intl-messageformat';
export { MessageFormats };
export declare type FormatDateTimeOptions = Intl.DateTimeFormatOptions & {
    locale?: string;
};
export declare type FormatDateTimeValue = Parameters<Intl.DateTimeFormat['format']>[0];
export interface FormatDatetime {
    (option: FormatDateTimeOptions): (value: FormatDateTimeValue) => string;
}
export declare type FormatNumberOptions = Intl.NumberFormatOptions & {
    locale?: string;
};
export declare type FormatNumberValue = Parameters<Intl.NumberFormat['format']>[0];
export interface FormatNumber {
    (option: FormatNumberOptions): (value: FormatNumberValue) => string;
}
export declare type FormatPluralOptions = Intl.PluralRulesOptions & {
    locale?: string;
};
export declare type FormatPluralValue = Parameters<Intl.PluralRules['select']>[0];
export interface FormatPlural {
    (option: FormatPluralOptions): (value: FormatPluralValue) => string;
}
export declare type FormatRelativeTimeOptions = any & {
    unit?: any;
    locale: string;
};
export declare type FormatRelativeTimeValue = Parameters<IntlRelativeTimeFormat['format']>[0];
export interface FormatRelativeTime {
    (option: FormatRelativeTimeOptions): (value: FormatRelativeTimeValue) => string;
}
export declare type FormatMessageOptions = {
    locale?: string;
    message: string;
    formats?: MessageFormats;
    value?: FormatMessageValue;
};
export declare type FormatMessageValue = Parameters<IntlMessageFormat['format']>[0];
export interface FormatMessage {
    (option: FormatMessageOptions): string;
}
export declare type Formats = {
    formatMessage: FormatMessage;
    formatRelativeTime: FormatRelativeTime;
    formatDatetime: FormatDatetime;
    formatNumber: FormatNumber;
    formatPlural: FormatPlural;
    formatMessageHtml: FormatMessage;
};
