import { Disposable } from '../core/disposable'; import { TargetStream } from '../types'; import type { QualitySnapshot } from './quality-monitor'; import { type CameraRadassState, type RadassConfig } from './radass-types'; /** Read-only snapshot of a camera's current state, provided by the host (StreamManager). */ export interface CameraInfo { targetStream: TargetStream; snapshot: QualitySnapshot; elementHeight: number; elementArea: number; viewportAreaFraction: number; canAutoUpgrade: boolean; /** Number of stats updates received by this camera's quality monitor. */ statsUpdateCount: number; } /** Callback interface for the controller to read camera state and apply decisions. */ export interface RadassHost { /** Read current camera info. Returns null if the camera was removed. */ getCameraInfo(connectionKey: string): CameraInfo | null; /** Apply a quality directive to a camera. */ applyDirective(connectionKey: string, quality: 'high' | 'low'): void; } export declare class RadassController extends Disposable { private readonly config; private readonly host; private readonly states; constructor(config: RadassConfig, host: RadassHost); registerCamera(connectionKey: string): void; unregisterCamera(connectionKey: string): void; getState(connectionKey: string): CameraRadassState | undefined; protected onAfterAbort(): void; private tick; private setQuality; private canSwitch; private resetAntiThrash; } //# sourceMappingURL=radass-controller.d.ts.map