export type TransformType = 'move' | 'rotate' | 'scale' | 'free-transform'; export type TransformHandle = | 'top-left' | 'top-center' | 'top-right' | 'middle-left' | 'middle-right' | 'bottom-left' | 'bottom-center' | 'bottom-right' | 'rotate'; export interface TransformBounds { x: number; y: number; width: number; height: number; } export interface TransformState { x: number; y: number; scaleX: number; scaleY: number; rotation: number; // in degrees skewX: number; skewY: number; } export interface Transform { layerId: string; originalBounds: TransformBounds; currentState: TransformState; isActive: boolean; maintainAspectRatio: boolean; } export interface TransformMatrix { a: number; // scaleX b: number; // skewY c: number; // skewX d: number; // scaleY e: number; // translateX f: number; // translateY } export interface TransformStore { activeTransform: Transform | null; transformType: TransformType; showHandles: boolean; maintainAspectRatio: boolean; setTransformType: (type: TransformType) => void; setShowHandles: (show: boolean) => void; setMaintainAspectRatio: (maintain: boolean) => void; startTransform: (layerId: string, bounds: TransformBounds) => void; updateTransform: (state: Partial) => void; applyTransform: () => void; cancelTransform: () => void; }