import { ApplicationShell } from '../shell';
import { FrontendApplicationStateService } from './frontend-application-state';
import { MaybePromise, AbstractApplication } from '../../common';
export declare class FrontendApplication extends AbstractApplication {
    protected readonly _shell: ApplicationShell;
    protected readonly stateService: FrontendApplicationStateService;
    protected readonly hostDomId: string;
    get shell(): ApplicationShell;
    start(): Promise<void>;
    /**
     * Return a promise to the host element to which the application shell is attached.
     */
    protected getHost(): Promise<HTMLElement>;
    /**
     * Return an HTML element that indicates the startup phase, e.g. with an animation or a splash screen.
     */
    protected getStartupIndicator(host: HTMLElement): HTMLElement | undefined;
    /**
     * Register global event listeners.
     */
    protected registerEventListeners(): void;
    /**
     * If a startup indicator is present, it is first hidden with the `malagu-hidden` CSS class and then
     * removed after a while. The delay until removal is taken from the CSS transition duration.
     */
    protected revealShell(host: HTMLElement): Promise<void>;
    protected doStart(): Promise<void>;
    protected measure<T>(name: string, fn: () => MaybePromise<T>): Promise<T>;
    stop(): Promise<void>;
}
//# sourceMappingURL=frontend-application.d.ts.map