import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, QueryList, Renderer2, SimpleChanges } from '@angular/core';
import { GridStack, GridStackNode, GridStackOptions } from 'gridstack';
import { GridStackNodeCompatible } from './grid-stack.config';
import { GridStackService } from './grid-stack.service';
import './polyfill';
import { DashboardLibraryTrashDirective } from './widget-library/library-trash.directive';
import { DashboardLibraryWidgetDirective } from './widget-library/library-widget.directive';
import { DashboardWidgetComponent } from './widget/widget.component';
import * as i0 from "@angular/core";
export type DashboardWidgetEvent = Array<{
    widget?: DashboardWidgetComponent;
    node?: GridStackNodeCompatible & {
        widgetData?: any;
        willItFit?: boolean;
        trashData?: any;
    };
    origNode?: GridStackNodeCompatible;
}>;
export declare class DashboardComponent implements OnChanges, AfterViewInit, OnDestroy {
    el: ElementRef;
    private cdr;
    private renderer;
    gridStackService: GridStackService;
    get gridStack(): GridStack;
    widgetComponents: QueryList<DashboardWidgetComponent>;
    initOptions: GridStackOptions;
    static: boolean;
    float: boolean;
    animate: boolean;
    widgetMoveable: boolean;
    widgetResizable: boolean;
    showGridBlock: boolean;
    column: number;
    minRow: number;
    maxRow: number;
    cellHeight: number | string;
    margin: number | string;
    widgetAdded: EventEmitter<DashboardWidgetEvent>;
    widgetChanged: EventEmitter<DashboardWidgetEvent>;
    widgetRemoved: EventEmitter<DashboardWidgetEvent>;
    dashboardInit: EventEmitter<any>;
    finalOption: GridStackOptions;
    renderedWidgets: Array<DashboardWidgetComponent>;
    addClass: boolean;
    constructor(el: ElementRef, cdr: ChangeDetectorRef, renderer: Renderer2, gridStackService: GridStackService);
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    private getTransformOption;
    private handleItemChanges;
    batchUpdate(): void;
    commit(): void;
    addedHandler: (event: any, items: GridStackNode[]) => void;
    changeHandler: (event: any, items: GridStackNode[]) => void;
    removedHandler: (event: any, items: GridStackNode[]) => void;
    handleDragInNode(node: GridStackNode, origNode: GridStackNode, widget: DashboardLibraryWidgetDirective): void;
    handleDragOutNode(node: GridStackNode, dropArea: DashboardLibraryTrashDirective): void;
    private addGridStackNodeCompatible;
    getCurrentColumn(): number;
    getCurrentRow(): number;
    getCurrentColumnWidth(): number;
    getCurrentCellHeight(): number;
    getCurrentMargin(): number;
    compact(): void;
    willItFit(x: number, y: number, width: number, height: number, autoPosition?: boolean): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<DashboardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DashboardComponent, "d-dashboard", ["dDashboard"], { "initOptions": { "alias": "initOptions"; "required": false; }; "static": { "alias": "static"; "required": false; }; "float": { "alias": "float"; "required": false; }; "animate": { "alias": "animate"; "required": false; }; "widgetMoveable": { "alias": "widgetMoveable"; "required": false; }; "widgetResizable": { "alias": "widgetResizable"; "required": false; }; "showGridBlock": { "alias": "showGridBlock"; "required": false; }; "column": { "alias": "column"; "required": false; }; "minRow": { "alias": "minRow"; "required": false; }; "maxRow": { "alias": "maxRow"; "required": false; }; "cellHeight": { "alias": "cellHeight"; "required": false; }; "margin": { "alias": "margin"; "required": false; }; }, { "widgetAdded": "widgetAdded"; "widgetChanged": "widgetChanged"; "widgetRemoved": "widgetRemoved"; "dashboardInit": "dashboardInit"; }, ["widgetComponents"], ["*"], false, never>;
}
