import { VisibilityTimeline } from '../assets/visibilityAnalyzer.js'; import { Offset } from './types.js'; import { DemoAnalyzer } from './analyzer.js'; export interface OptimalWindow { start: Offset; end: Offset; resourceCount: number; resources: Set; score: number; } export type ScoringMode = 'count' | 'size' | 'locality' | 'hybrid' | 'action'; export interface OptimizationCriteria { durationRange?: [number, number]; maxResources?: number; scoringMode?: ScoringMode; resourceSizes?: Map; topN?: number; } export interface OptimizationOptions extends OptimizationCriteria { analyzer?: DemoAnalyzer; demoBuffer?: ArrayBuffer; searchStart?: number; searchEnd?: number; } export declare class OptimalClipFinder { findOptimalWindows(timeline: VisibilityTimeline, criteria: OptimizationOptions): Promise; findMinimalWindow(timeline: VisibilityTimeline, duration: number, options?: OptimizationOptions): OptimalWindow; findMinimalWindowInRange(timeline: VisibilityTimeline, duration: number, searchStart?: Offset, searchEnd?: Offset): OptimalWindow; private estimateTime; private scanTimeline; private calculateActionScore; private addResources; private removeResources; } //# sourceMappingURL=optimalClipFinder.d.ts.map