export type HandlePosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; export interface ResizeOptions { /** CSS selector for handle elements within the host. Not needed when `handle` is set. */ handleSelector?: string; /** External handle element. When set, pointerdown listens on this element instead of the host. */ handle?: HTMLElement; axis?: 'horizontal' | 'vertical' | 'both'; min?: number; max?: number; disabled?: boolean; /** Reverse drag direction (e.g. left-edge handle that grows width on leftward drag). */ reverse?: boolean; /** Handle mode: 'edge' for single-axis edge handles (default), 'corner' for two-axis corner handles. */ handleMode?: 'edge' | 'corner'; /** Which corner handles to use (corner mode only). Defaults to all four. */ handles?: HandlePosition[]; /** Minimum width constraint (corner mode). Falls back to `min` if not set. */ minWidth?: number; /** Maximum width constraint (corner mode). Falls back to `max` if not set. */ maxWidth?: number; /** Minimum height constraint (corner mode). Falls back to `min` if not set. */ minHeight?: number; /** Maximum height constraint (corner mode). Falls back to `max` if not set. */ maxHeight?: number; /** Snap-to-grid increment in pixels. 0 = no snapping. */ step?: number; /** Attribute name set on host (and handle) during resize. Default: 'resizing'. */ stateAttribute?: string; /** Element that receives resize events. Defaults to `host`. */ eventTarget?: HTMLElement; /** When false, the controller fires events but does not set host.style.width/height. Default: true. */ autoApply?: boolean; } /** Handles pointer-driven element resizing via a drag handle, dispatching `native:resize-start`, `native:resize-move`, `native:resize-end`, and `native:resize-cancel`. */ export declare class ResizeController { #private; readonly host: HTMLElement; handleSelector: string; axis: 'horizontal' | 'vertical' | 'both'; min: number; max: number; disabled: boolean; reverse: boolean; handleMode: 'edge' | 'corner'; handles: HandlePosition[]; minWidth: number | undefined; maxWidth: number | undefined; minHeight: number | undefined; maxHeight: number | undefined; step: number; stateAttribute: string; autoApply: boolean; constructor(host: HTMLElement, options: ResizeOptions); attach(): void; detach(): void; destroy(): void; } //# sourceMappingURL=resize-controller.d.ts.map