import { BrowserRouterOptions } from './types';
import { IKosDataModel, IKosIdentifiable, KosCreationContext, KosMethodTypes, KosMiddleware, PublicModelInterface } from '../../../core';

export declare const MODEL_TYPE = "browser-router-model";
export type KosBrowserRouter = Omit<PublicModelInterface<BrowserRouterModelImpl>, "load" | "init">;
export declare class BrowserRouterModelImpl implements IKosDataModel, IKosIdentifiable {
    private _id;
    private logger;
    private router;
    constructor(modelId: string, _options: BrowserRouterOptions, context: KosCreationContext);
    get id(): string;
    private handleRequest;
    use<TPath extends string = string>(method: KosMethodTypes, path: TPath, ...middlewares: KosMiddleware<TPath>[]): void;
    /**
     * Remove routes matching the given method and path
     * @param method HTTP method (GET, POST, etc.)
     * @param path Route path pattern
     * @returns Number of routes removed
     */
    remove(method: KosMethodTypes, path: string): number;
    /**
     * Remove all routes matching a path pattern (regardless of method)
     * @param path Route path pattern
     * @returns Number of routes removed
     */
    removeAllForPath(path: string): number;
    /**
     * Get all registered routes (for debugging/monitoring)
     */
    getRoutes(): Array<{
        method: string;
        path: string;
    }>;
    init(): Promise<void>;
    load(): Promise<void>;
}
//# sourceMappingURL=browser-router-model.d.ts.map