import { HasId, Page, PageWithParams, RepresentsRoutes } from './common';
import { CommonRouteObject } from '../type';
interface ModalRoutePartial extends CommonRouteObject {
    modal: string;
}
export declare class ModalPage<I extends string> implements Page, RepresentsRoutes<ModalRoutePartial>, HasId<I> {
    id: I;
    path: string;
    hasParams: false;
    constructor(id: I, path: string);
    getRoutes(): ModalRoutePartial[];
}
export declare class ModalPageWithParams<I extends string, T extends string> implements PageWithParams<T>, RepresentsRoutes<ModalRoutePartial>, HasId<I> {
    id: I;
    path: string;
    paramKeys: readonly T[];
    hasParams: true;
    constructor(id: I, path: string, paramKeys: readonly T[]);
    getRoutes(): ModalRoutePartial[];
}
export declare function createModal<T extends string>(id: T, path: string): ModalPage<T>;
export declare function createModal<T extends string, P extends string>(id: T, path: string, paramKeys: readonly P[]): ModalPageWithParams<T, P>;
export type AnyModalPage = ModalPage<string> | ModalPageWithParams<string, string>;
export {};
//# sourceMappingURL=ModalPage.d.ts.map