export interface DetectionBox { x: number; y: number; w: number; h: number; score: number; classId?: number; } export interface SideAlignment { top: boolean; right: boolean; bottom: boolean; left: boolean; } export interface ClassificationResult { class: string; confidence: number; classIndex: number; } export interface IDetectionService { loadModel(): Promise; loadClassificationModel(): Promise; isModelLoaded(): boolean; preprocess(video: HTMLVideoElement): any; runInference(inputTensor: any): Promise; classifyDocument(canvas: HTMLCanvasElement): Promise; checkSideAlignment(box: DetectionBox, maskConfig: any): SideAlignment; isCardInFrame(box: DetectionBox): boolean; areAllSidesAligned(alignment: SideAlignment): boolean; cleanup(): void; }