import type { WindowMetrics, RollingMetrics, Violation, MonitorOptions, ViolationHandler } from '../../shared/types/monitor.types.js'; export interface FrameSample { timestamp: number; frameTime: number; dropped: boolean; } export interface IRollingWindowService { addSample(sample: FrameSample): void; getMetrics(): RollingMetrics; getWindowMetrics(window: '1m' | '5m' | '15m'): WindowMetrics; reset(): void; addViolation(violation: Violation): void; getViolations(): Violation[]; clearViolations(): void; } export interface IMonitorService { start(options: MonitorOptions): Promise; stop(): Promise; isMonitoring(): boolean; getMetrics(): RollingMetrics; onViolation(handler: ViolationHandler): void; offViolation(handler: ViolationHandler): void; } export type { WindowMetrics, RollingMetrics, Violation, MonitorOptions, ViolationHandler, };