Files
KGStudio/src/components/interfaces.ts
T
2026-05-04 17:59:35 -07:00

47 lines
952 B
TypeScript

// selectable interface
export interface Selectable {
getId(): string;
select(): void;
deselect(): void;
isSelected(): boolean;
getRootType(): string;
getCurrentType(): string;
}
// Define a Region interface for UI representation
export interface RegionUI {
id: string;
trackId: string;
trackIndex: number;
barNumber: number;
length: number;
name: string;
}
export interface RegionClickOptions {
shiftKey: boolean;
}
// Define resize action types
export type ResizeAction = 'none' | 'start' | 'end';
// Define region resize state
export interface RegionResizeState {
regionId: string;
isResizing: boolean;
resizeAction: ResizeAction;
initialX: number;
initialBarNumber: number;
initialLength: number;
}
// Define region drag state
export interface RegionDragState {
regionId: string;
isDragging: boolean;
initialX: number;
initialY: number;
initialBarNumber: number;
initialTrackIndex: number;
}