import type { ITileGridDimension } from './ITileGridDimension';
import type { ITileGridPosition } from './ITileGridPosition';
import type { ITileResizeDimensions } from './ITileResizeDimensions';
/**
 * Manages the resize state for a tile during resize operations.
 *
 * @public
 */
export declare class TileManagerResizeState {
    private _gap;
    private _prevDeltaX;
    private _prevDeltaY;
    private _prevSnappedWidth;
    private _prevSnappedHeight;
    private _position;
    private _columns;
    private _rows;
    private _initialPosition;
    private _resizeUtil;
    /**
     * Constructs a new instance of the `TileManagerResizeState` class.
     *
     * @public
     */
    constructor();
    /**
     * The resized dimensions.
     *
     * @public
     */
    resizedDimensions: ITileResizeDimensions;
    /**
     * Gets the gap size.
     *
     * @public
     * @readonly
     */
    get gap(): number;
    /**
     * Gets a clone of the current position.
     *
     * @public
     * @readonly
     */
    get position(): ITileGridPosition;
    /**
     * Gets a clone of the columns information.
     *
     * @public
     * @readonly
     */
    get columns(): ITileGridDimension;
    /**
     * Gets a clone of the rows information.
     *
     * @public
     * @readonly
     */
    get rows(): ITileGridDimension;
    /**
     * Calculates the snapped width during resize.
     *
     * @param state - The resize state containing current dimensions.
     * @returns The snapped width.
     *
     * @public
     */
    calculateSnappedWidth(state: ISnappedWidthParams): number;
    /**
     * Calculates the snapped height during resize.
     *
     * @param state - The resize state containing current dimensions.
     * @returns The snapped height.
     *
     * @public
     */
    calculateSnappedHeight(state: ISnappedHeightParams): number;
    /**
     * Updates the resize state with new values.
     *
     * @param tileRect - The tile's bounding rectangle.
     * @param tile - The tile element.
     * @param grid - The grid container element.
     *
     * @public
     */
    updateState(tileRect: DOMRect, tile: ITileElementShape, grid: HTMLElement): void;
    /**
     * Calculates the resized grid position after a resize operation.
     *
     * @param rect - The new bounding rectangle.
     * @returns The new column and row spans.
     *
     * @public
     */
    calculateResizedGridPosition(rect: DOMRect): IResizedGridPositionResult;
    /**
     * Gets the grid offset for a given axis.
     *
     * @param grid - The grid container element.
     * @param axis - The axis ('horizontal' or 'vertical').
     * @returns The offset value.
     */
    private getGridOffset;
    /**
     * Gets the resize properties for the current state.
     *
     * @param state - The resize state.
     * @param isRow - Whether this is for row (vertical) resize.
     * @returns The resize properties.
     */
    private getResizeProps;
    /**
     * Gets the resize span properties.
     *
     * @param rect - The bounding rectangle.
     * @param isRow - Whether this is for row (vertical) resize.
     * @returns The resize span properties.
     */
    private getResizeSpanProps;
}
/**
 * Factory function to create a new TileManagerResizeState instance.
 *
 * @returns A new TileManagerResizeState instance.
 *
 * @public
 */
export declare function createTileManagerResizeState(): TileManagerResizeState;
//# sourceMappingURL=TileManagerResizeState.d.ts.map