import type { Eq, PartialOrd } from '../utils/Types'; import VideoPreference from './VideoPreference'; declare class ObjectSet implements Iterable { private items; constructor(items?: T[]); static default(): ObjectSet; [Symbol.iterator](): Iterator; first(): T | undefined; add(item: T): void; replaceFirst(newItem: T, f: (item: T) => boolean): void; remove(item: T): void; clear(): void; isEmpty(): boolean; equals(other: this): boolean; has(item: T): boolean; some(f: (item: T) => boolean): boolean; clone(): ObjectSet; sort(): void; modify(): SetBuilder; } declare class SetBuilder { private items; private copied; constructor(items?: ObjectSet); private cow; add(item: T): void; replaceFirst(newItem: T, f: (item: T) => boolean): void; remove(item: T): void; some(f: (preference: T) => boolean): boolean; clear(): void; build(): ObjectSet; } export declare class MutableVideoPreferences { private builder; constructor(builder: SetBuilder); add(pref: VideoPreference): void; replaceFirst(newPref: VideoPreference, f: (pref: VideoPreference) => boolean): void; remove(pref: VideoPreference): void; some(f: (preference: VideoPreference) => boolean): boolean; clear(): void; build(): VideoPreferences; } export declare class VideoPreferences implements Iterable, Eq { private items; static prepare(): MutableVideoPreferences; static default(): VideoPreferences; [Symbol.iterator](): Iterator; highestPriority(): number | undefined; sorted(): Iterator; equals(other: this): boolean; modify(): MutableVideoPreferences; some(f: (pref: VideoPreference) => boolean): boolean; isEmpty(): boolean; } export default VideoPreferences;