import Component from '@glimmer/component';
import { TrackedMap } from 'tracked-built-ins';
import type { HdsAdvancedTableNormalizedColumn } from '../types.ts';
import type { ModifierLike } from '@glint/template';
export declare const DEFAULT_WIDTH = "1fr";
export declare const DEFAULT_MIN_WIDTH = "150px";
export declare const DEFAULT_MAX_WIDTH = "800px";
export interface HdsAdvancedTableSyncWidthValuesSignature {
    Element: HTMLDivElement;
}
interface HdsAdvancedTableColumnManagerWidthSignature {
    Args: {
        columnOrder: string[];
        columns: HdsAdvancedTableNormalizedColumn[];
        orderedColumns: HdsAdvancedTableNormalizedColumn[];
        thElements: TrackedMap<string, HTMLDivElement>;
        isSelectable?: boolean;
        getColumnByKey: (key: string) => HdsAdvancedTableNormalizedColumn | undefined;
    };
    Blocks: {
        default: [
            {
                gridTemplateColumns: string;
                syncWidthValues: ModifierLike<HdsAdvancedTableSyncWidthValuesSignature>;
                applyTransientWidth: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => void;
                getAppliedWidth: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => HdsAdvancedTableNormalizedColumn['width'];
                getSiblingColumnKeys: (columnKey: HdsAdvancedTableNormalizedColumn['key'] | null) => {
                    previous?: HdsAdvancedTableNormalizedColumn['key'];
                    next?: HdsAdvancedTableNormalizedColumn['key'];
                };
                resetTransientColumnWidths: () => void;
                restoreColumnWidth: (columnKey: HdsAdvancedTableNormalizedColumn['key']) => void;
                setTransientColumnWidth: (columnKey: HdsAdvancedTableNormalizedColumn['key'], width: `${number}px`, clamped?: boolean) => void;
                setTransientColumnWidths: (options: {
                    roundValues?: boolean;
                }) => void;
                updateResizeDebt: (columnKey: HdsAdvancedTableNormalizedColumn['key'], delta: number) => void;
            }
        ];
    };
}
export default class HdsAdvancedTableColumnManagerWidth extends Component<HdsAdvancedTableColumnManagerWidthSignature> {
    private _columnWidths;
    private _originalColumnWidths;
    private _transientColumnWidths;
    private _columnDebts;
    syncWidthValues: import("ember-modifier").FunctionBasedModifier<{
        Element: HTMLDivElement;
        Args: {
            Named: import("ember-modifier/-private/signature").EmptyObject;
            Positional: [];
        };
    }>;
    get gridTemplateColumns(): string;
    getAppliedWidth: (columnKey: HdsAdvancedTableNormalizedColumn["key"]) => HdsAdvancedTableNormalizedColumn["width"];
    getSiblingColumnKeys: (columnKey: HdsAdvancedTableNormalizedColumn["key"] | null) => {
        previous?: HdsAdvancedTableNormalizedColumn["key"];
        next?: HdsAdvancedTableNormalizedColumn["key"];
    };
    private _getPxWidth;
    private _getPxMinWidth;
    applyTransientWidth: (columnKey: HdsAdvancedTableNormalizedColumn["key"]) => void;
    setTransientColumnWidths: (options?: {
        roundValues?: boolean;
    }) => void;
    resetTransientColumnWidths: () => void;
    setTransientColumnWidth: (columnKey: HdsAdvancedTableNormalizedColumn["key"], width: `${number}px`, clamped?: boolean) => void;
    updateResizeDebt: (columnKey: HdsAdvancedTableNormalizedColumn["key"], delta: number) => void;
    restoreColumnWidth: (columnKey: HdsAdvancedTableNormalizedColumn["key"]) => void;
    private _settleWidthDebts;
    private _collectWidthDebts;
    private _payWidthDebts;
    private _sourceFundsForPayment;
}
export {};
