import { DmsApplicationService } from './application-context-service';
import { Application } from './application';
export type RouteObject = {
    pageName: string;
    name: string;
    path: string;
    validate: boolean;
    preserveContext: boolean;
    routeId: string;
    lastStepId: string;
};
export type ViewNavigationState = {
    routeId: string;
    routeTarget: string;
    preserveContext: boolean;
    currentTaskId: string;
    currentStepId: string;
    isValidating: boolean;
};
export declare abstract class DmsTask {
    protected _viewClasses: Array<any>;
    protected _viewInstances: Array<any>;
    protected _taskId: string;
    protected _appCode: string;
    protected _isTestMode: boolean;
    protected _app: Application;
    protected _isanonymousAccessAllowed: boolean;
    dms: DmsApplicationService;
    protected domManager: any;
    constructor(appCode: string, taskId: string, app: Application, isanonymousAccessAllowed: boolean, viewClasses: Array<any>);
    protected abstract setupInjectableServices(): void;
    private findViewInstanceByViewId;
    findViewClassByViewId(viewId: any): any;
    private getCookie;
    protected showViewOverlay(): void;
    protected hideViewOverlay(): void;
    protected doCreateView(page: any, dms: DmsApplicationService): Promise<void>;
    protected applyColorTheme(): Promise<void>;
    protected applyPlatformTheme(): string;
    validateView(_currentViewInstance: any, routeObject: RouteObject): Promise<boolean>;
    protected findRoute(stepId: string, routeId: string): RouteObject;
    private attachEventEmitterEvents;
    private processSecurityByTask;
    protected initializeUIFramework({ theme, allTaskRoutes }: {
        theme: string;
        allTaskRoutes: any[];
    }): Promise<void>;
    private processTaskRoutes;
    private registerComponent;
    private registerViewComponents;
    private callComponentsHook;
    protected getUrlParameter(name: string): string;
    abstract run(isTestMode?: boolean): Promise<void>;
    protected internalRun(isTestMode?: boolean): Promise<void>;
    protected internalNavigate(routeObect: RouteObject): Promise<void>;
    dispose(): void;
}
