import { PropsWithChildren, ReactElement } from 'react';
import { SwitchPolicy } from '.';
import { RouterContext } from './hooks';
import { UIServices, ChildrenMap } from '../../../types';
import { RuntimeComponentSchema } from '@sunmao-ui/core';
export declare type RouteLikeElement = PropsWithChildren<{
    path?: string;
    exact?: boolean;
    strict?: boolean;
    sensitive?: boolean;
    match?: [boolean, any];
}>;
export declare type RouteProps = RouteLikeElement & {
    mergeState: (params: any) => void;
};
export declare const Route: React.FC<RouteProps>;
declare type SwitchProps = {
    location?: string;
    switchPolicy: SwitchPolicy;
    component: RuntimeComponentSchema;
    childrenMap: ChildrenMap<string>;
    services: UIServices;
    slotsElements: Record<string, ReactElement[]>;
    mergeState: (partialState: any) => void;
    subscribeMethods: (map: {
        [key: string]: (parameters: any) => void;
    }) => void;
};
export declare const Switch: React.FC<SwitchProps>;
declare type NestedProps = RouteLikeElement & {
    base: string;
};
export declare const Nested: React.FC<NestedProps>;
declare type WouterProps = {
    base: string;
};
export declare const Wouter: (props: React.PropsWithChildren<WouterProps>) => import("react").FunctionComponentElement<import("react").ProviderProps<{
    v?: RouterContext | undefined;
}>>;
declare type RedirectProps = {
    to?: string;
    href?: string;
    replace?: boolean;
};
export declare const Redirect: React.FC<RedirectProps>;
export {};
