import { Component, MouseEvent, ReactNode, RefObject } from 'react';
import { ColumnLayoutCtx, ColumnDivision } from './context';
type color = string;
interface OverlayBoxProps {
    division: ColumnDivision;
    background: color;
    className: string;
    children?: ReactNode;
    onClick?: (evt: MouseEvent) => void;
}
interface DivisionEditOverlayProps {
    left: number;
    top: number;
    showInfoBox: boolean;
    onClick(ctx: {
        event?: MouseEvent;
        height: number;
        division?: ColumnDivision;
    }): void;
    allowEditing: boolean;
    renderEditorPopup(d: ColumnDivision): ReactNode;
    scaleToGrainsize: boolean;
    editingInterval: ColumnDivision;
    color: color;
    width: number;
    popoverWidth: number;
    selectedHeight: number;
}
interface DivisionEditOverlayState {
    height: number | null;
    hoveredDivision: ColumnDivision | null;
    popoverIsOpen: boolean;
}
export declare class DivisionEditOverlay extends Component<DivisionEditOverlayProps, DivisionEditOverlayState> {
    static contextType: import('react').Context<ColumnLayoutCtx<ColumnDivision>>;
    static defaultProps: {
        onHoverInterval(): void;
        onClick(): void;
        left: number;
        top: number;
        showInfoBox: boolean;
        allowEditing: boolean;
        renderEditorPopup(): null;
        color: string;
        popoverWidth: number;
    };
    elementRef: RefObject<HTMLDivElement>;
    timeout: any;
    context: ColumnLayoutCtx<ColumnDivision>;
    constructor(props: DivisionEditOverlayProps);
    onHoverInterval(event: any): null | undefined;
    removeHoverBox(): null;
    heightForEvent(event: any): any;
    onEditInterval(event: any): void;
    onClick(event: any): void;
    renderCursorLine(): import('react').ReactElement<{
        style: {
            top: number;
            height: number;
            border: string;
            width: number;
            position: string;
            pointerEvents: string;
        };
    }, string | import('react').JSXElementConstructor<any>> | undefined;
    renderHoveredBox(): import('react').FunctionComponentElement<OverlayBoxProps> | null;
    closePopover(): void;
    render(): import('react').FunctionComponentElement<import('ui-box').BoxProps<import('react').ElementType<any, keyof import("react").JSX.IntrinsicElements>>>;
}
export {};
