import { Injector, ElementRef } from '@angular/core';
import { Size } from '../model';
import { Disposable } from '../shared';
import { ViewResizeMode } from '../settings';
import { GuiContext } from './gui-context';
import { BsModalService } from 'ngx-bootstrap/modal';
import { GuiOptions } from './interfaces/gui-options';
export declare class GuiHost implements Disposable {
    private readonly injector;
    private readonly bsModalService;
    readonly context: GuiContext;
    private readonly guiOptions;
    readonly el: ElementRef;
    private isLoaded;
    private currentView;
    currentViewIndex: number;
    private containerEl;
    private currentViewSize;
    private currentViewReiszeMode;
    private readonly logger;
    constructor(injector: Injector, bsModalService: BsModalService, context: GuiContext, guiOptions: GuiOptions, el: ElementRef);
    get element(): HTMLElement;
    /**
     * Load gui host and main view.
     */
    load(configureViewId?: number | undefined): Promise<GuiHost>;
    loadByConfigureViewCode(configureViewCode?: string): Promise<GuiHost>;
    private loadMainViewConfig;
    private loadViewConfigByConfigureViewId;
    private loadViewConfigByConfigureViewCode;
    private handleViewConfigCallback;
    /**
     * Resize current view
     * @param size : target view size
     * @param resizeMode : target resize mode
     */
    resizeView(size: Size, resizeMode: ViewResizeMode): void;
    /**
     * Update current view size;
     * @param size : target view size
     */
    updateViewSize(size: Size): void;
    /**
     * Resize current view
     * @param size : target view size
     * @param resizeMode : target resize mode
     */
    updateViewResizeMode(resizeMode: ViewResizeMode): void;
    dispose(): void;
}
