/** * Fluent Grow Layout - Sizing Module * ---------------------------------- * Offers fluent helpers for width/height management, fluid sizing and * responsive breakpoints. */ import { type LengthValue, type ResponsiveInput, type ResponsiveOptions } from './shared'; export type SizingValue = LengthValue; export interface ClampConfig { property: 'width' | 'height' | 'inline-size' | 'block-size'; min: SizingValue; ideal: SizingValue; max: SizingValue; } export interface SizingConfig { width?: SizingValue; height?: SizingValue; minWidth?: SizingValue; minHeight?: SizingValue; maxWidth?: SizingValue; maxHeight?: SizingValue; inlineSize?: SizingValue; blockSize?: SizingValue; aspectRatio?: string | number; objectFit?: CSSStyleDeclaration['objectFit']; objectPosition?: string; contain?: string; clamp?: ClampConfig | ClampConfig[]; } export type SizingResponsiveMap = ResponsiveInput; export type SizingScale = Record; export declare class Sizing { private element; private cleanupFns; private scale; constructor(element: HTMLElement, scale?: SizingScale); withScale(scale: SizingScale): this; width(value: SizingValue): this; height(value: SizingValue): this; size(width?: SizingValue, height?: SizingValue): this; minSize(width?: SizingValue, height?: SizingValue): this; maxSize(width?: SizingValue, height?: SizingValue): this; inlineSize(value: SizingValue): this; blockSize(value: SizingValue): this; aspectRatio(value: string | number): this; square(size: SizingValue): this; circle(diameter: SizingValue): this; objectFit(value: CSSStyleDeclaration['objectFit'], position?: string): this; contain(value: string): this; clamp(config: ClampConfig | ClampConfig[]): this; fluid(property: ClampConfig['property'], min: SizingValue, ideal: SizingValue, max: SizingValue): this; responsive(responsive: SizingResponsiveMap, options?: ResponsiveOptions): this; destroy(): void; private applyConfig; private assignIfPresent; private formatClamp; private resolve; private registerCleanup; } //# sourceMappingURL=sizing.d.ts.map