import { NavigationDestination, NavigationNavigateOptions as NavigationNavigateOptionsPrototype, NavigationNavigationType, NavigationEntriesChangeEventInit } from "./spec/navigation"; import { NavigationHistoryEntry } from "./navigation-entry"; import { NavigationTransition, InternalNavigationNavigationType } from "./navigation-transition"; import { NavigateEvent, NavigationCurrentEntryChangeEvent } from "./events"; export interface PreventDefaultLike { preventDefault(): void; } export declare const NavigationFormData: unique symbol; export declare const NavigationDownloadRequest: unique symbol; export declare const NavigationCanIntercept: unique symbol; export declare const NavigationUserInitiated: unique symbol; export declare const NavigationOriginalEvent: unique symbol; export interface NavigationNavigateOptions extends NavigationNavigateOptionsPrototype { [NavigationFormData]?: FormData; [NavigationDownloadRequest]?: string; [NavigationCanIntercept]?: boolean; [NavigationUserInitiated]?: boolean; [NavigationOriginalEvent]?: PreventDefaultLike; } export declare const EventAbortController: unique symbol; export interface AbortControllerEvent { [EventAbortController]: AbortController; } export interface InternalNavigationNavigateOptions extends NavigationNavigateOptions { entries?: NavigationHistoryEntry[]; index?: number; known?: Set>; navigationType?: NavigationNavigationType; } export interface NavigationTransitionCommitContext { entries: NavigationHistoryEntry[]; index: number; known?: Set>; entriesChange?: NavigationEntriesChangeEventInit; } export interface NavigationTransitionContext { commit(commit: NavigationTransitionCommitContext): Promise; transition: NavigationTransition; options?: InternalNavigationNavigateOptions; currentIndex: number; known: Set>; startTime?: number; currentEntry: NavigationHistoryEntry; reportError?(reason: unknown): void; } export interface NavigationTransitionResult { entries: NavigationHistoryEntry[]; index: number; known: Set>; destination: NavigationDestination; navigate: NavigateEvent; currentEntryChange: NavigationCurrentEntryChangeEvent; navigationType: InternalNavigationNavigationType; waitForCommit: Promise; abortController: AbortController; commit(): Promise | void; } export declare function createNavigationTransition(context: NavigationTransitionContext): NavigationTransitionResult;