import type { ComputeAwareConfig, SegmentPerfStat } from "@hevcjs/core"; type DashPlayer = any; export interface DashComputeAwareOptions extends ComputeAwareConfig { /** * Per-observation telemetry sink. Called even when no cap change occurs. * `reason` is the decider's verdict: * `init` | `hold` | `lower` | `raise`. */ onObservation?: (stat: SegmentPerfStat, avgSpeedX: number, capIndex: number | null, reason: "init" | "hold" | "lower" | "raise") => void; } /** * Attach the compute-aware feedback loop to a dash.js MediaPlayer. * * Safe to call before or after `player.initialize()`. The ladder is read * lazily as segments arrive, so it picks up post-MPD-load variants. * * @returns cleanup — unsubscribes the perf-bus listener. Does NOT clear * any cap already applied; call * `player.updateSettings({ streaming: { abr: { maxBitrate: { video: -1 }}}})` * afterwards if you want to release the ceiling. */ export declare function attachDashComputeAware(player: DashPlayer, options?: DashComputeAwareOptions): () => void; export {}; //# sourceMappingURL=compute-aware.d.ts.map