import type { Vec2 } from '../../math'; import type { Sides } from './layout'; import type { AxisConfig } from './types'; type PaddingSide = keyof Required; interface RangeTolerance { absolute?: number; relative?: number; } export declare const is_valid_range: (range: unknown) => range is Vec2; export declare const ranges_equal: (left: Vec2 | undefined | null, right: Vec2 | undefined | null, tolerance?: number | RangeTolerance) => boolean; export declare function union_ranges(ranges: readonly unknown[]): Vec2 | undefined; export declare const axis_with_range: (axis: AxisConfig | undefined, range: Vec2 | undefined, label?: string) => AxisConfig; export declare function sync_axis_range(axis: AxisConfig, range: unknown): AxisConfig; export declare function propagate_shared_axis_range(axis: AxisConfig, shared_range: Vec2 | undefined): AxisConfig; export declare function detect_shared_range_change(panel_ranges: readonly unknown[], shared_range: Vec2, current_synced_range: Vec2 | null): Vec2 | null | undefined; interface SharedAxisRangeUpdate { synced_range: Vec2 | null; axes: AxisConfig[]; } export declare function reconcile_shared_axis_ranges(axes: readonly AxisConfig[], shared_range: Vec2, current_synced_range: Vec2 | null): SharedAxisRangeUpdate | undefined; export declare function max_side_padding(paddings: readonly (Sides | undefined | null)[], sides?: readonly PaddingSide[]): Sides; export {};