import { AfterContentInit, AfterViewInit, ElementRef, EventEmitter, OnChanges, OnDestroy, QueryList } from '@angular/core';
import { ResizeDimensions } from '../../directives/resize/resize.service';
import { DashboardLayoutData, DashboardService } from './dashboard.service';
import { DashboardGrabHandleDirective } from './grab-handle/grab-handle.directive';
import { DashboardWidgetComponent } from './widget/dashboard-widget.component';
import * as i0 from "@angular/core";
export declare class DashboardComponent implements AfterViewInit, AfterContentInit, OnDestroy, OnChanges {
    readonly dashboardService: DashboardService;
    private readonly _changeDetector;
    isGrabbing: boolean;
    customAriaLabel: (widgets: DashboardWidgetComponent[], options: DashboardOptions) => string | string;
    /** If defined or changed this will set the positions of the widgets within the dashboard. This is a two way binding that will be updated with the current layout when it changes. */
    set layout(layout: DashboardLayoutData[]);
    /** Configures the options for the dashboard, if an option is not specified the default value will be used. */
    set options(options: DashboardOptions);
    /** Emits when layout has been changed. */
    layoutChange: EventEmitter<DashboardLayoutData[]>;
    ariaLabel: string;
    role: string;
    dashboardElement: ElementRef;
    /** Find all grab handles used in the dashboard */
    handles: QueryList<DashboardGrabHandleDirective>;
    /** Ensure we unsubscribe from all observables */
    private readonly _onDestroy;
    constructor();
    /**
     * Set the initial dimensions
     */
    ngAfterViewInit(): void;
    ngAfterContentInit(): void;
    ngOnChanges(): void;
    ngOnDestroy(): void;
    onResize(event: ResizeDimensions): void;
    getAriaLabel(): string;
    /** Shift widgets up where possible to fill any available space to optimize the dashboard layout */
    refreshLayout(): void;
    private getDefaultAriaLabel;
    private getWidgetAriaLabel;
    static ɵfac: i0.ɵɵFactoryDeclaration<DashboardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DashboardComponent, "ux-dashboard", never, { "customAriaLabel": { "alias": "aria-label"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "options": { "alias": "options"; "required": false; }; "role": { "alias": "role"; "required": false; }; }, { "layoutChange": "layoutChange"; }, ["handles"], ["*"], false, never>;
}
export interface DashboardOptions {
    columns?: number;
    padding?: number;
    minWidth?: number;
    minHeight?: number;
    rowHeight?: number;
    emptyRow?: boolean;
}
