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";
import * as i0 from "@angular/core";
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;
    static ɵfac: i0.ɵɵFactoryDeclaration<DashboardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DashboardComponent, "nui-dashboard", never, { "gridsterConfig": { "alias": "gridsterConfig"; "required": false; }; "dashboard": { "alias": "dashboard"; "required": false; }; "editMode": { "alias": "editMode"; "required": false; }; "belowFoldLazyLoadingConfig": { "alias": "belowFoldLazyLoadingConfig"; "required": false; }; }, { "gridsterConfigChange": "gridsterConfigChange"; "dashboardChange": "dashboardChange"; }, never, never, false, never>;
}
