import { Reducible, Action, Dispatch } from 'reducible-node'; import { PageInstance } from './pageInstance'; import { Pages, PageOccurrence } from './pages'; export interface PageReplaceOptions extends PageOccurrence { toRemoveMutex: string; } export interface PageOpenOptions extends PageOccurrence { insertAfterMutex?: string; } export interface PageCloseOptions { mutex: string; goto?: string; } export declare class Navigator implements Reducible { private pages; private instances; private activePageMutex; private activeChildren; constructor(pages: Pages); readonly all: PageInstance[]; readonly roots: PageInstance[]; readonly active: PageInstance | undefined; readonly activeMutex: string | undefined; readonly activeRootMutex: string | undefined; readonly activeRoot: PageInstance | undefined; readonly activeRootIndex: number; readonly indexAsChildOfActiveRoot: number; hasChildren(mutex: string): boolean; childrenOf(mutex: string): PageInstance[]; pageFromMutex(mutex: string | undefined): PageInstance | undefined; getActiveChild(mutex: string | undefined): string | undefined; private persistInstances(instances); private persistActivePage(instances, mutex); reduce(action: Action): this; transit(dispatch: Dispatch, mutex: string | undefined): void; open(dispatch: Dispatch, occurrence: PageOpenOptions): void; replace(dispatch: Dispatch, toRemoveMutex: string, occurrence: PageOccurrence): void; close(dispatch: Dispatch, mutex: string, goto?: string): void; load(dispatch: Dispatch): void; clear(dispatch: Dispatch): void; }