import { Type } from "@angular/core";
import { FormFunction } from "./form/form-function";
import { Form } from "./form/form.component";
import { CustomPageElement } from "./page/element/custom/custom-container.component";
import { Key, PageElement } from "./page/element/page-element";
import { Page } from "./page/page";
import { IForm, IPageElement, IPathApp } from "./pathinterface";
import { PathService } from "./service/path.service";
import { TranslationService } from "./service/translation.service";
import * as i0 from "@angular/core";
export declare abstract class PathAppComponent implements IPathApp {
    pathService: PathService;
    private translationService;
    private _pageStack;
    private _formStack;
    private _userId;
    private _texts;
    private _version;
    show: boolean;
    constructor(pathService: PathService, translationService: TranslationService);
    get version(): string;
    get texts(): string[];
    protected abstract getStartPage(): string;
    getApplicationLogo(): string;
    protected abstract getOwnUserForm(): string;
    abstract getGuiModel(): any;
    protected abstract getBeans(): any;
    protected abstract getHandlers(): any;
    abstract getBackendUrl(): string;
    protected abstract getFrontendVersion(): string;
    isLoading(): boolean;
    private loadApplicationTexts;
    getUserId(): string;
    login(event: any, userId: string, password: string): void;
    logout(): void;
    showUserForm(): void;
    closeCurrentForm(): void;
    refreshCurrentPage(): void;
    private refreshPageStack;
    navigateBack(clearSearch?: boolean): void;
    navigateToPage(pageNumber: number): void;
    yesNo(text: string, yesHandler: () => void, noHandler: () => void): void;
    protected getCustomComponentClass(componentType: string): Type<CustomPageElement>;
    setCurrentPage(pageId: string, parentPageElement: PageElement): void;
    createPageElement(modelElement: any, parentPageElement: PageElement, page: Page): PageElement[];
    private wrapSingleButton;
    setCurrentForm(formId: string, key: Key, handler: string, parentPageElement: IPageElement): void;
    private getModelForm;
    createForm(formId: string, key: Key, handler: string, formFunction: FormFunction, parentPageElement: IPageElement): Form;
    createDynamicForm(): IForm;
    private populateForm;
    private createFormField;
    toggleCollapse(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PathAppComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<PathAppComponent, "path-application-2", never, {}, {}, never>;
}
