/** * The armed-navigation-guard registry: the single set every SDK-controlled * navigation consults, so feature and plugin-page guards compose against the same * guards. `run` stops at the first veto (at most one confirm dialog); `subscribe` * lets the provider re-evaluate browser-level listeners when the armed set changes. */ import type { NavigationGuardHandler } from './types'; /** * One armed navigation guard. The registry holds this exact object (not a * snapshot), so flipping `when` or swapping `handler` on re-render takes effect * without re-registering. */ export interface GuardEntry { when: boolean; handler: NavigationGuardHandler; } export declare class NavigationGuardRegistry { private readonly guards; private readonly listeners; /** Register a guard; returns the unregister function. */ add(entry: GuardEntry): () => void; /** Notify subscribers that a guard's `when` may have changed. */ touch(): void; subscribe(listener: () => void): () => void; hasArmedGuards(): boolean; /** Resolve `true` only if every armed guard allows the navigation. */ run(): Promise; private emit; } //# sourceMappingURL=guard-registry.d.ts.map