import { type SvelteComponent } from 'svelte/types/runtime';
import { type Writable } from 'svelte/types/runtime/store';
export declare function exists<T>(x: T): boolean;
declare class Guard {
    #private;
    constructor(logic?: 'and' | 'or', destination?: string);
    goTo(href: string): this;
    private _navigate;
    check(...args: boolean[]): this;
}
export declare function useGuard(): Guard;
export declare function link(node: HTMLElement): {
    destroy?: () => void;
};
interface Route {
    path: string;
    layout: SvelteComponent | undefined;
    loader: () => Promise<SvelteComponent>;
}
interface Router {
    routes: Route[];
    mode: string;
    root: string;
    props: Record<string, unknown>;
    component: SvelteComponent | undefined;
    layout: SvelteComponent | undefined;
    getFragment: () => string;
    matchRoute: (path: string) => Route | undefined;
    updateSelf: () => void;
    getProps: () => Record<string, unknown>;
    navigate: (path: string) => void;
}
export declare const useRouter: Writable<Router>;
export {};
//# sourceMappingURL=index.d.ts.map