import { KeyValue } from "@angular/common";
import { AfterViewInit, EventEmitter, OnChanges, QueryList, SimpleChanges } from "@angular/core";
import { GridsterComponent, GridsterConfig, GridsterItemComponent } from "angular-gridster2";
import { EventBus } from "@nova-ui/bits";
import { IDashboard, IDashboardBelowFoldLazyLoadingConfig } from "./types";
import { IWidgetEvent } from "../../services/widget-to-dashboard-event-proxy.service";
import { IWidget } from "../widget/types";
export declare class DashboardComponent implements OnChanges, AfterViewInit {
    readonly eventBus: EventBus<IWidgetEvent>;
    gridsterConfig: GridsterConfig;
    get dashboard(): IDashboard;
    set dashboard(value: IDashboard);
    private _dashboard;
    dashboardBuffer: IDashboard | null;
    editMode: boolean;
    belowFoldLazyLoadingConfig: IDashboardBelowFoldLazyLoadingConfig;
    gridsterConfigChange: EventEmitter<GridsterConfig>;
    dashboardChange: EventEmitter<IDashboard>;
    get hostClass(): boolean;
    gridster: GridsterComponent;
    gridsterItems: QueryList<GridsterItemComponent>;
    gridsterItemsVisibilityMap: Record<string, boolean>;
    constructor(eventBus: EventBus<IWidgetEvent>);
    ngAfterViewInit(): void;
    onGridsterScroll(): void;
    ngOnChanges(changes: SimpleChanges): void;
    orderWidgets: (a: KeyValue<string, IWidget>, b: KeyValue<string, IWidget>) => number;
    trackByFn: (index: number, item: KeyValue<string, IWidget>) => string;
    onWidgetChange(widget: IWidget): void;
    updateWidget(widget: IWidget): void;
    removeWidget(widgetId: string, removePosition?: boolean): void;
    shouldWidgetRender(key: string): boolean;
    private updateWidgetPosition;
    private emitWidgetResize;
    private hookEvent;
    private calculateWidgetsVisibility;
}
