import { Navigation, NavigationEventMap, NavigationHistoryEntry, NavigationNavigateOptions, NavigationNavigationOptions, NavigationReloadOptions, NavigationResult, NavigationUpdateCurrentOptions, } from "./spec/navigation"; import { NavigationEventTarget } from "./navigation-event-target"; class NoOperationNavigationResult implements NavigationResult { committed: Promise = new Promise(() => {}); finished: Promise = new Promise(() => {}); } export class NoOperationNavigation extends NavigationEventTarget implements Navigation { readonly canGoBack: boolean = false; readonly canGoForward: boolean = false; back(options?: NavigationNavigationOptions): NavigationResult { return new NoOperationNavigationResult(); } entries(): NavigationHistoryEntry[] { return []; } forward(options?: NavigationNavigationOptions): NavigationResult { return new NoOperationNavigationResult(); } traverseTo(key: string, options?: NavigationNavigationOptions): NavigationResult { return new NoOperationNavigationResult(); } navigate(url: string, options?: NavigationNavigateOptions): NavigationResult { return new NoOperationNavigationResult(); } reload(options?: NavigationReloadOptions): NavigationResult { return new NoOperationNavigationResult(); } updateCurrentEntry(options: NavigationUpdateCurrentOptions): Promise; updateCurrentEntry(options: NavigationUpdateCurrentOptions): void; async updateCurrentEntry( options: NavigationUpdateCurrentOptions ): Promise { return undefined; } }