import * as _are_visual_virtual_table from '@are-visual/virtual-table';
import { ColumnType } from '@are-visual/virtual-table';

declare module '@are-visual/virtual-table' {
    interface ColumnExtra {
        disableResize?: boolean;
        /** Resize 时限制最小列宽 */
        minWidth?: number;
        /** Resize 时限制最大列宽 */
        maxWidth?: number;
    }
}
type Constraint<T> = number | ((column: ColumnType<T>) => (number | undefined | null));
interface ResizeOptions<T = any> {
    storageKey: string;
    min?: Constraint<T>;
    max?: Constraint<T>;
}
declare const columnResize: <T = any>(args?: ResizeOptions<T> | undefined) => _are_visual_virtual_table.Middleware<T>;

export { columnResize };
export type { ResizeOptions };
