/**
 * Copyright 2023 Kapeta Inc.
 * SPDX-License-Identifier: MIT
 */
import React, { CSSProperties } from 'react';
import { DnDDrop } from './DnDDrop';
import { DnDDrag } from './DnDDrag';
import { Dimensions } from '@kapeta/schemas';
import { DOMElement } from '@kapeta/ui-web-utils';
interface DnDContainerProps {
    children: any;
    overflowX?: boolean;
    overflowY?: boolean;
    zoom?: number;
}
interface DnDContainerState {
    scrollLeft: number;
    scrollTop: number;
    zoom?: number;
}
export declare class DnDContainer extends React.Component<DnDContainerProps, DnDContainerState> {
    private elm;
    private dropZones;
    private currentDropZones;
    constructor(props: DnDContainerProps);
    private getDropZonesFor;
    onDropZoneCreated(dropZone: DnDDrop): void;
    onDropZoneRemoved(dropZone: DnDDrop): void;
    onDragStart(drag: DnDDrag): void;
    onDragMove(dimensions: Dimensions, dragRect: ClientRect, drag: DnDDrag): void;
    onDragEnd(dimensions: Dimensions, dragRect: ClientRect, drag: DnDDrag): void;
    componentDidMount(): void;
    private updateScroll;
    calculateStyle(existingStyle?: CSSProperties): React.CSSProperties;
    getElement(): DOMElement;
    render(): React.JSX.Element;
}
export {};
