/** * Scale operations for 3D elements * Core logic extracted from UI-dependent code */ import { OutlinerElement } from '../geometry/outliner_element'; import { Group } from '../geometry/group'; import { Vector3 } from './transform'; export interface ScaleOptions { scale: number; origin: Vector3; axis: { x: boolean; y: boolean; z: boolean; }; integerSize?: boolean; } export interface ElementSnapshot { from?: Vector3; to?: Vector3; origin?: Vector3; vertices?: Record; } /** * Create a snapshot of element state before scaling */ export declare function createElementSnapshot(element: OutlinerElement): ElementSnapshot; /** * Restore element from snapshot */ export declare function restoreElementFromSnapshot(element: OutlinerElement, snapshot: ElementSnapshot): void; /** * Scale an element based on options */ export declare function scaleElement(element: OutlinerElement, options: ScaleOptions, snapshot?: ElementSnapshot): void; /** * Scale multiple elements */ export declare function scaleElements(elements: OutlinerElement[], options: ScaleOptions, snapshots?: Map): Map; /** * Scale groups */ export declare function scaleGroups(groups: Group[], options: ScaleOptions, snapshots?: Map): Map; //# sourceMappingURL=scale_operations.d.ts.map