/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { Observable } from 'rxjs';
import { ColumnBase } from '../columns/column-base';
/**
 * The returned type of the [`columnResize`](slug:api_treelist_treelistcomponent#toc-columnresize) event.
 */
export interface ColumnResizeArgs {
    /**
     * The resized column.
     */
    column: ColumnBase;
    /**
     * The new width (in pixels) of the column.
     */
    newWidth?: number;
    /**
     * The actual width (in pixels) of the column prior to resizing.
     */
    oldWidth: number;
}
/**
 * @hidden
 */
export type ActionType = 'start' | 'resizeColumn' | 'resizeTable' | 'end' | 'autoFitComplete' | 'triggerAutoFit';
/**
 * @hidden
 */
export interface ColumnResizeAction {
    columns: Array<ColumnBase>;
    delta?: number;
    deltaPercent?: number;
    locked?: boolean;
    resizedColumns?: Array<ColumnResizeArgs>;
    type: ActionType;
    widths?: Array<Array<number>>;
}
/**
 * @hidden
 */
export interface AutoFitInfo {
    column: ColumnBase;
    headerIndex: number;
    index: number;
    isLastInSpan: boolean;
    isParentSpan: boolean;
    level: number;
}
/**
 * @hidden
 */
export type AutoFitObservable = Observable<Array<number>>;
/**
 * @hidden
 */
export type AutoFitFn = (columns: Array<AutoFitInfo>) => AutoFitObservable;
