///
import { RouterStoreState } from './Store';
import { MouseEvent } from 'react';
import { LocationDescriptorObject, History, Location } from 'history';
export declare type Match = null | undefined | boolean | object;
export declare type ValOrFunc = Result | ((location: Location, parentMatch: Match) => Result);
export declare type NavParams = {
href: string;
match: Match;
location: Location;
navigate: () => void;
handleAnchorClick: (event: MouseEvent) => void;
};
export declare type StringOrLocationDescriptorObject = string | LocationDescriptorObject;
export declare type ToProps = (StringOrLocationDescriptorObject | ((currentMatch: Match, location: Location, parentMatch: Match) => StringOrLocationDescriptorObject));
export declare function execValOrFunc(valOrFunc: ValOrFunc, location: Location, parentMatch: Match): Val;
export declare function checkSwitchState(props: {
switchIndex?: number | false;
}, parentRouterState: RouterStoreState, match: Match): Match;
export declare function isModifiedEvent(event: MouseEvent): boolean;
export declare function createNavParams(to: ToProps, history: History, location: Location, replace?: boolean, match?: ValOrFunc, parentMatch?: Match): NavParams;
export declare function createHandleAnchorClick(navigate: () => void): (event: MouseEvent, target?: string) => void;
export declare function navigate(to: LocationDescriptorObject, history: History, replace?: boolean): void;
export declare function execTo(to: ToProps, match: Match, location: Location, parentMatch?: Match): LocationDescriptorObject;
export declare function hoistNonReactStatics(targetComponent: any, sourceComponent: any, customStatics?: {
[key: string]: boolean;
}): any;