import { ReactChild } from 'react';
import { Renderable } from '../Context/Context';
declare type ResolvedType<T> = T extends (...args: any[]) => any ? ReturnType<T> : T;
interface I18nTokenShape<T, DEFAULT extends Renderable<T>> {
    token?: string;
    default?: DEFAULT;
    children?: (x: ResolvedType<DEFAULT>) => ReactChild;
    values?: T;
}
interface I18nTokensShape {
    tokens?: string[];
    defaults?: ReactChild[];
    children?: (x: ReactChild[]) => ReactChild;
}
declare const I18n: <T extends {}, DEFAULT extends Renderable<T>>(props: (import("../common").DisambiguateSet<I18nTokenShape<T, DEFAULT>, I18nTokensShape> & I18nTokensShape) | (import("../common").DisambiguateSet<I18nTokensShape, I18nTokenShape<T, DEFAULT>> & I18nTokenShape<T, DEFAULT>)) => JSX.Element;
export { I18n };
