import { ColumnResizerConfig, ColumnResizer, ColumnSectionConfig, ColumnBarConfig } from '@column-resizer/core';
export * from '@column-resizer/core';
import * as React from 'react';

type UseWatchColumnEventsConfig = {
    onActivate?: () => void;
    afterResizing?: () => void;
};

type ContainerProps = React.HTMLAttributes<HTMLDivElement> & UseWatchColumnEventsConfig & Partial<ColumnResizerConfig> & {
    columnResizerRef?: React.RefObject<ColumnResizer | null>;
};
declare const Container: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & UseWatchColumnEventsConfig & Partial<ColumnResizerConfig> & {
    columnResizerRef?: React.RefObject<ColumnResizer | null>;
} & React.RefAttributes<HTMLDivElement>>;

type SectionProps = React.HTMLAttributes<HTMLDivElement> & ColumnSectionConfig & {
    onSizeChanged?: (currentSize: number) => void;
};
declare const Section: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & ColumnSectionConfig & {
    onSizeChanged?: (currentSize: number) => void;
} & React.RefAttributes<HTMLDivElement>>;

type ExpandInteractiveArea = {
    top?: number;
    left?: number;
    right?: number;
    bottom?: number;
};

type BarProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onClick'> & Partial<ColumnBarConfig> & {
    expandInteractiveArea?: ExpandInteractiveArea;
    onClick?: () => void;
    onStatusChanged?: (isActive: boolean) => void;
};
declare const Bar: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDivElement>, "onClick"> & Partial<ColumnBarConfig> & {
    expandInteractiveArea?: ExpandInteractiveArea;
    onClick?: () => void;
    onStatusChanged?: (isActive: boolean) => void;
} & React.RefAttributes<HTMLDivElement>>;

export { Bar, type BarProps, Container, type ContainerProps, type ExpandInteractiveArea, Section, type SectionProps };
