import React, { ReactNode, HTMLProps, ComponentType } from 'react';
export interface LinkLikeComponentProps extends HTMLProps {
to: string;
children?: React.ReactNode;
external?: boolean;
[key: string]: any;
}
export declare type TranslationKey = 'close' | 'expand' | 'submit' | 'processing' | 'dismissNotification' | 'increment' | 'decrement' | 'january' | 'february' | 'march' | 'april' | 'may' | 'june' | 'july' | 'august' | 'september' | 'october' | 'november' | 'december' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday' | 'mondayAbbreviation' | 'tuesdayAbbreviation' | 'wednesdayAbbreviation' | 'thursdayAbbreviation' | 'fridayAbbreviation' | 'saturdayAbbreviation' | 'sundayAbbreviation' | 'showNextMonth' | 'showPreviousMonth';
export interface SimpleInterpolationReplacements {
[key: string]: string | number;
}
export interface Geolocation {
countryCode?: string;
}
export interface Context {
linkComponent?: ComponentType;
geolocation?: Geolocation;
translate(key: TranslationKey, replacements?: SimpleInterpolationReplacements): string;
}
export declare const AppContextContext: React.Context;
export interface Props extends Context {
children?: ReactNode;
}
export declare function AppContext({ children, linkComponent, geolocation, translate, }: Props): JSX.Element;
export declare function useAppContext(): Context;
export declare function useTranslate(): (key: TranslationKey, replacements?: SimpleInterpolationReplacements | undefined) => string;
export declare function useLinkComponent(): React.ComponentClass | React.FunctionComponent | undefined;
export declare function useGeolocation(): Geolocation | undefined;