///
import { RouteConfig } from './RouteConfig';
import { RouteParams, QueryParams } from './GetParams';
import { ParamName } from './Route';
import { SmartLinkProps, SmartNavLinkProps } from './components';
import { UseSmartRoute, UseRouteMatch, UseQueryParams, UseParams } from './hooks';
type NoMandatoryParamKeys = {
[N in keyof R]: {} extends RouteParams ? N : never;
}[keyof R];
export interface RoutesAPI {
route(routeName: N, params: RouteParams, queryParams?: QueryParams): string;
route>(routeName: N): string;
path: (routeName: N, partialParams?: Partial>) => string;
paramNames: (routeName: N) => ParamName[];
queryParamNames: (routeName: N) => (keyof QueryParams)[];
routes: R;
routeNames: TRouteName[];
isRouteName: (routeName: string | number | symbol) => routeName is TRouteName;
SmartLink: (props: SmartLinkProps) => JSX.Element;
SmartNavLink: (props: SmartNavLinkProps) => JSX.Element;
useSmartRoute: UseSmartRoute;
useParams: UseParams;
useQueryParams: UseQueryParams;
useRouteMatch: UseRouteMatch;
}
export {};