///
import { Navigo, RouteFunc, Hooks, NamedRoute, Tonwa, Login } from 'tonwa-core';
import 'font-awesome/css/font-awesome.min.css';
import '../css/va-form.css';
import '../css/va.css';
import '../css/animation.css';
import { User, Guest } from 'tonwa-core';
import { FetchError } from 'tonwa-core';
import { NavView } from './NavView';
export declare type NavPage = (params: any) => Promise;
export interface NavSettings {
oem?: string;
loginTop?: JSX.Element;
privacy?: string;
htmlTitle?: string;
}
export declare class Nav {
private readonly tonwa;
private readonly web;
private navView;
private wsHost;
private local;
private navigo;
navSettings: NavSettings;
user: User;
testing: boolean;
language: string;
culture: string;
resUrl: string;
constructor(tonwa: Tonwa);
renderNavView(onLogined: (isUserLogin?: boolean) => Promise, notLogined?: () => Promise, userPassword?: () => Promise<{
user: string;
password: string;
}>): JSX.Element;
get guest(): number;
set(navView: NavView): void;
onReceive(msg: any): Promise;
private loadUnitJson;
private getPredefinedUnitName;
private loadPredefinedUnit;
setSettings(settings?: NavSettings): void;
get oem(): string;
hashParam: string;
private centerHost;
private arrs;
private unitJsonPath;
private windowOnError;
private windowOnUnhandledRejection;
private windowOnClick;
private windowOnMouseMove;
private windowOnScroll;
forceDevelopment: boolean;
init(): Promise;
reloadUser: () => void;
appStart(): Promise;
start(): Promise;
resolveRoute(): void;
on(routeFunc: RouteFunc, hooks?: Hooks): Navigo;
on(url: string, routeFunc: RouteFunc, hooks?: Hooks): Navigo;
on(regex: RegExp, routeFunc: RouteFunc, hooks?: Hooks): Navigo;
on(options: {
[url: string]: RouteFunc | NamedRoute;
}): Navigo;
private navLogin;
private navLogout;
private navRegister;
private navForget;
navigateToLogin(): void;
openSysPage(url: string): boolean;
private navPageRoutes;
private routeFromNavPage;
onNavRoute(navPage: NavPage): void;
private doneSysRoutes;
private sysRoutes;
onNavRoutes(navPageRoutes: {
[url: string]: NavPage;
}): void;
private internalOnNavRoutes;
isWebNav: boolean;
backIcon: JSX.Element;
closeIcon: JSX.Element;
setIsWebNav(): void;
pageWebNav: any;
navigate(url: string, absolute?: boolean): Navigo;
go(showPage: () => void, url: string, absolute?: boolean): void;
showAppView(isUserLogin?: boolean): Promise;
setGuest(guest: Guest): void;
saveLocalUser(): void;
setUqRoles(uq: string, roles: string[]): void;
loadMe(): Promise;
private internalLogined;
onChangeLogin: (user: User) => Promise;
logined(user: User, callback?: (user: User) => Promise): Promise;
userLogined(user: User, callback?: (user: User) => Promise): Promise;
loginTop(defaultTop: JSX.Element): JSX.Element;
privacyEntry(): JSX.Element;
private getPrivacyContent;
showPrivacyPage: () => void;
private privacyPage;
private createLogin;
setCreateLogin(createLogin: (tonwa: Tonwa) => Promise): void;
private login;
private getLogin;
showLogin(callback?: (user: User) => Promise, withBack?: boolean): Promise;
showLogout(callback?: () => Promise): Promise;
showRegister(): Promise;
showForget(): Promise;
logout(callback?: () => Promise): Promise;
changePassword(): Promise;
userQuit(): Promise;
get level(): number;
startWait(): void;
endWait(): void;
onError(fetchError: FetchError): Promise;
private upgradeUq;
showUpgradeUq(uq: string, version: number): Promise;
show(view: JSX.Element, disposer?: () => void): void;
push(view: JSX.Element, disposer?: () => void): void;
replace(view: JSX.Element, disposer?: () => void): void;
pop(level?: number): void;
topKey(): number;
popTo(key: number): void;
clear(): void;
navBack(): void;
ceaseTop(level?: number): void;
removeCeased(): void;
back(confirm?: boolean): Promise;
regConfirmClose(confirmClose: () => Promise): void;
confirmBox(message?: string): boolean;
get logs(): string[];
log(msg: string): void;
logMark(): void;
logStep(step: string): void;
showReloadPage(msg: string): void;
reload: () => Promise;
resetAll: () => void;
checkVersion(): Promise;
}