import { Navigator } from './Navigator' ; import RouteNode from './tree/RouteNode' ; export type NavigatorErrorLogger = ( errorStr : string ) => void ; export type NavigatorEscapeFn = ( str : string ) => string ; export interface NavigatorConfig { defaultRoute : string ; rootPage : string ; defaultParams ? : any ; queryParamsMode ? : string ; base ? : string ; persistentParams ? : string [ ] ; subRouteKey ? : string ; routeKey ? : string ; preserveHash ? : boolean ; preservePath ? : boolean ; escapeParams ? : boolean ; fillStack ? : boolean ; escape ? : NavigatorEscapeFn ; errorLogger ? : NavigatorErrorLogger ; } export interface NavigatorGetStateOptions { withoutHistory ? : boolean ; routeParams ? : boolean ; } export type NavigatorGetState = ( options ? : NavigatorGetStateOptions ) => NavigatorState ; export interface NavigatorParams { [ key ] : any ; } export type NavigatorCloseModalOpts = { sequence ? : boolean ; cutHistory ? : boolean ; } ; export type NavigatorRouteProperties = Record < string , any > ; export interface NavigatorOptions { [ key ] : any ; replace ? : boolean ; reload ? : boolean ; } export interface NavigatorRoute { [ key ] : any ; name : string ; params ? : NavigatorParams ; subRoute ? : boolean ; updateUrl ? : boolean ; title ? : string ; children ? : NavigatorRoute [ ] ; } export interface NavigatorCreateOptions { routes ? : NavigatorRoute [ ] ; config ? : NavigatorConfig ; } export type NavigatorCreate = ( options : NavigatorCreateOptions ) => Navigator ; export type NavigatorHistoryRecord = NavigatorState ; export type NavigatorStateSource = 'popstate' | 'go' | 'default' | 'url' ; export interface NavigatorMeta { source : NavigatorStateSource ; [ key ] : any ; } export interface NavigatorState { page : string ; modal ? : string ; history ? : NavigatorHistoryRecord [ ] ; params : NavigatorParams ; counter ? : number ; activeNodes ? : RouteNode [ ] ; meta : NavigatorMeta ; } export interface NavigatorStatesToSubscriber { toState : NavigatorState ; fromState : NavigatorState ; history : NavigatorState [ ] ; } export type NavigatorSubscriber = ( state : NavigatorStatesToSubscriber ) => void ; export type NavigatorDone = ( func ? : any ) => void ; export type NavigatorRouteHandler = ( fromState : NavigatorState , toState : NavigatorState , done : NavigatorDone ) => void ; export type NavigatorRouteHandlerCollection = Record < string , NavigatorRouteHandler > ; export interface Browser { getBase ( ) : string ; pushState ( state , title , path ) : void ; replaceState ( state , title , path ) : void ; addPopstateListener ( fn , opts ) : any ; addLinkInterceptorListener ( buildState , go ) : any ; getLocation ( opts , search ? ) : string ; getState ( ) : HistoryState ; getHash ( ) : string ; } export interface HistoryState { [ key ] : any ; } export type HistoryRecord = NavigatorState ; export interface BrowserOptions { forceDeactivate ? : boolean ; useHash ? : boolean ; hashPrefix ? : string ; base ? : string | null ; mergeState ? : boolean ; preserveHash ? : boolean ; useQueryNavigation ? : boolean ; sourceRoutes ? : any [ ] ; defaultPath ? : string ; subRouteKey ? : string ; } export interface Browser { getBase ( ) : string ; pushState ( state , title , path ) : void ; replaceState ( state , title , path ) : void ; addPopstateListener ( fn , opts ) : any ; getLocation ( opts ) : string ; getState ( ) : HistoryState ; getHash ( ) : string ; }