///
import { /*centerApi, logoutApis, */ AppConfig as AppConfigCore, Tonwa, UqQuery, Web } from "tonwa-core";
import { User, UqsConfig as UqsConfigCore } from 'tonwa-core';
import { RouteFunc, Hooks, Navigo, NamedRoute } from "tonwa-core";
import { ControllerWithWeb } from '../vm';
export interface IConstructor {
new (...args: any[]): T;
}
export declare type UqsConfig = UqsConfigCore;
export interface AppConfig extends AppConfigCore {
version: string;
loginTop?: JSX.Element;
oem?: string;
privacy?: string;
noUnit?: boolean;
htmlTitle?: string;
}
export interface Elements {
[id: string]: (element: HTMLElement) => void;
}
export declare abstract class CAppBase extends ControllerWithWeb {
private appConfig;
private uqsMan;
protected _uqs: U;
readonly web: Web;
timezone: number;
unitTimezone: number;
unitBizMonth: number;
unitBizDate: number;
constructor(tonwa: Tonwa, config?: AppConfig);
get uqs(): U;
internalT(str: string): any;
setRes(res: any): void;
protected afterBuiltUQs(uqs: any): void;
protected loadUnitTime($getTimezone: UqQuery): Promise;
bizDate(date: Date): Date;
private uqsUser;
protected initUQs(): Promise;
protected beforeStart(): Promise;
protected afterStart(): Promise;
userFromId(userId: number): Promise;
protected on(routeFunc: RouteFunc, hooks?: Hooks): Navigo;
protected on(url: string, routeFunc: RouteFunc, hooks?: Hooks): Navigo;
protected on(regex: RegExp, routeFunc: RouteFunc, hooks?: Hooks): Navigo;
protected on(options: {
[url: string]: RouteFunc | NamedRoute;
}): Navigo;
protected onNavRoutes(): void;
getUqRoles(uqName: string): Promise;
isAdmin(roles: string[]): boolean;
isRole(roles: string[], role: string): boolean;
protected onChangeLogin(user: User): Promise;
}