import { AfterContentChecked, AfterContentInit, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, OnInit, QueryList, Renderer2, SimpleChanges, ViewContainerRef } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { GridLayoutService } from '../../grid-layout.service';
import { GridPlaceholderService } from '../../grid-placeholder.service';
import { DragEndEvent, DragStartEvent, GridLayout, ResizeStartEvent, GridCfg, GridItemRenderData, ResizeEndEvent, ItemResizeEvent } from '../../type';
import { GridItemComponent } from '../grid-items/component';
import * as i0 from "@angular/core";
export declare class GridLayoutComponent implements OnInit, OnChanges, AfterContentChecked, AfterContentInit, OnDestroy {
    elementRef: ElementRef;
    viewContainerRef: ViewContainerRef;
    private readonly renderer;
    private readonly ngZone;
    private readonly gridPlaceholderService;
    private readonly document;
    private readonly gridLayoutService;
    /** Query list of grid items that are being rendered. */
    gridItems: QueryList<GridItemComponent>;
    layoutUpdated: EventEmitter<GridLayout>;
    dragStarted: EventEmitter<DragStartEvent>;
    resizeStarted: EventEmitter<ResizeStartEvent>;
    dragEnded: EventEmitter<DragEndEvent>;
    resizeEnded: EventEmitter<ResizeEndEvent>;
    gridItemResize: EventEmitter<ItemResizeEvent>;
    scrollableParent: HTMLElement | Document | string | null;
    scrollableParent$: Observable<HTMLElement | Document | string | null>;
    id: string;
    preventCollision: boolean;
    scrollSpeed: number;
    compactType: import("../../utils/react-grid-layout.utils").CompactType;
    rowHeight: number;
    cols: number;
    layout: GridLayout;
    gutter: number;
    private lastLayout;
    destroy$$: Subject<void>;
    get config(): GridCfg;
    get hostElement(): HTMLElement;
    constructor(elementRef: ElementRef, viewContainerRef: ViewContainerRef, renderer: Renderer2, ngZone: NgZone, gridPlaceholderService: GridPlaceholderService, document: Document, gridLayoutService: GridLayoutService);
    ngOnInit(): void;
    private lastLayoutId;
    private markLayoutIdChange;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterContentInit(): void;
    ngAfterContentChecked(): void;
    ngOnDestroy(): void;
    refreshLayout(dashIdChange: boolean): GridLayout;
    compactLayout(dashIdChange: boolean): void;
    getItemRenderData(itemId: string): GridItemRenderData;
    private initSubscriptions;
    private handleAction$;
    static ɵfac: i0.ɵɵFactoryDeclaration<GridLayoutComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<GridLayoutComponent, "acl-grid-layout", never, { "scrollableParent": { "alias": "scrollableParent"; "required": false; }; "id": { "alias": "id"; "required": false; }; "preventCollision": { "alias": "preventCollision"; "required": false; }; "scrollSpeed": { "alias": "scrollSpeed"; "required": false; }; "compactType": { "alias": "compactType"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; "cols": { "alias": "cols"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "gutter": { "alias": "gutter"; "required": false; }; }, { "layoutUpdated": "layoutUpdated"; "dragStarted": "dragStarted"; "resizeStarted": "resizeStarted"; "dragEnded": "dragEnded"; "resizeEnded": "resizeEnded"; "gridItemResize": "gridItemResize"; }, ["gridItems"], ["*"], false, never>;
}
