import { IModule } from 'angular'; import { srv } from '../../core'; import { User } from './user'; import { Options } from '../types'; export type TEventType = 'start' | 'success' | 'visible'; export type INavigatorCallback = (params: any, stateName: string) => any; export default class Navigator extends srv.eventEmitter.EventEmitter { private readonly options; private readonly states; private prefix; private resolveLogin; constructor(options: Options); init(user: User, ngApp: IModule): this; finishLogin(data: any): void; getStatePrefix(): any; state(name: any, options: any): void; go(state: string, params?: Object, options?: { reload: boolean | string; }): PromiseLike; getUrl(state?: string, params?: Object): string; goHome(): any; listen(state: string | string[], type: TEventType, fn: INavigatorCallback, scope?: any): { otherwise(f: INavigatorCallback): void; }; listenFrom(state: string | string[], type: TEventType, fn: Function, invoke?: boolean, scope?: any): { otherwise(f: Function): void; }; reload(state?: string): void; }