import type { ComponentType } from 'react';
import { type PathPattern, type RouteObject } from 'react-router-dom';
import type { AnyObject } from 'yummies/types';
import { type QueryParams } from '../query-params/index.js';
import type { RouterStore } from './router.store.js';
import type { LocationData, ReactRouterInstance, RouteDeclaration, RouteMatch, RouterPath, RouterStoreParams, RouterToConfig } from './router.types.js';
export declare class RouterStoreBase implements RouterStore {
    protected abortController: AbortController;
    queryParams: QueryParams;
    matches: RouteMatch[];
    location: LocationData;
    private blockers;
    private router;
    fallbackComponent?: ComponentType;
    errorBoundaryComponent?: ComponentType;
    get lastMatch(): RouteMatch | null;
    createRoute(declaration: RouteDeclaration, index: number, parentPath: number[]): RouteObject;
    constructor({ routes, fallbackComponent, errorBoundaryComponent, abortSignal, type, ...libRouterParams }: RouterStoreParams);
    collectRouteMatches(matches: ReactRouterInstance['state']['matches']): RouteMatch[];
    createPath(to: RouterToConfig): RouterPath;
    get currentUrl(): string;
    createUrl(to: RouterToConfig): string;
    navigate(to: RouterToConfig, options?: {
        replace?: boolean;
    }): Promise<void>;
    get blocked(): boolean;
    blockRoutingIf(expression: () => boolean, id?: string): VoidFunction;
    blockRouting(id?: string): string;
    unblockRouting(id: string): void;
    getInstance(): ReactRouterInstance;
    back(): Promise<void>;
    findMatch: (pathOrPattern: PathPattern | string) => {
        params: AnyObject;
        pathname: string;
    } | null;
    isMatched: (pathOrPattern: PathPattern | string) => boolean;
    clean(): void;
}
//# sourceMappingURL=router.store.base.d.ts.map