import { PartialRequired, type Player, type PlayerPlugin, type Source } from '@oplayer/core'; import type shaka from 'shaka-player'; export type Matcher = (source: Source) => boolean; export interface ShakaPluginOptions { library?: string; matcher?: Matcher; /** *shaka config * @type {object} */ config?: any; requestFilter?: shaka.extern.RequestFilter; /** *default: 'menu' */ qualityControlType?: 'menu' | 'setting'; qualityControl?: boolean; audioControl?: boolean; textControl?: boolean; } declare class ShakaPlugin implements PlayerPlugin { key: string; name: string; version: string; static library: typeof shaka; player: Player; instance?: shaka.Player & { eventManager: shaka.util.EventManager; }; options: PartialRequired; constructor(options?: ShakaPluginOptions); apply(player: Player): this; load(player: Player, source: Source): Promise; getCurrentTime(): number; get seekRange(): { start: number; end: number; }; get _duration(): number; destroy(): Promise; setupQuality: (player: Player, instance: shaka.Player, qualityControlType: ShakaPluginOptions["qualityControlType"]) => void; setupAudioSelection: (player: Player, instance: shaka.Player) => void; setupTextSelection: (player: Player, instance: shaka.Player) => void; settingUpdater(arg: { icon: string; name: string; settings: { name: string; default: boolean; value: any; }[]; player: Player; onChange: (it: { value: any; }) => void; }): void; getResolutionLabel_(track: shaka.extern.Track, tracks: shaka.extern.Track[]): string; } export default function create(options?: ShakaPluginOptions): ShakaPlugin; export {}; //# sourceMappingURL=index.d.ts.map