import { Observable, ReplaySubject, Subject } from 'rxjs';
import { Dictionary } from '../core/public-api';
import { GridLayoutComponent } from './components/grid/component';
import { GridItemComponent } from './components/grid-items/component';
import { DragActionType, GridItemClientRect, GridItemRenderData, GridLayout, GridLayoutItem } from './public-api';
import * as i0 from "@angular/core";
export declare class GridLayoutService {
    gridComponent: GridLayoutComponent;
    get gridConfig(): import("./type").GridCfg;
    gridItemsRenderData: Dictionary<GridItemRenderData>;
    gridHeight: number;
    scrollDifference$: Observable<{
        top: number;
        left: number;
    }>;
    registerGridComponent(gridComponent: GridLayoutComponent): void;
    calculateRenderData(_updateLayout?: GridLayoutItem[]): void;
    gridRenderHeight$$: ReplaySubject<number>;
    gridRenderItemsData$$: Subject<{
        data: Dictionary<GridItemRenderData>;
        animation: boolean;
    }>;
    flushRenderItemsData(animation?: boolean): void;
    flushRenderData(animation?: boolean): void;
    lastLayout: GridLayout;
    setLastLayout(layout: GridLayout): void;
    layoutWhenAction(gridItem: GridItemComponent, type: DragActionType, { pointerDownEvent, pointerDragEvent, }: {
        pointerDownEvent: MouseEvent;
        pointerDragEvent: MouseEvent;
    }, scrollDifference: {
        top: number;
        left: number;
    }, dragElemClientRect: GridItemClientRect, gridElemClientRect: GridItemClientRect): {
        gridData: Dictionary<GridItemRenderData<number>>;
        layout: {
            id: string;
            x: number;
            y: number;
            w: number;
            h: number;
            minW?: number;
            minH?: number;
            maxW?: number;
            maxH?: number;
        }[];
    };
    static ɵfac: i0.ɵɵFactoryDeclaration<GridLayoutService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<GridLayoutService>;
}
