import Chaimu from "./client.js"; import { FetchFunction, FetchOpts } from "./types/controller.js"; export declare const videoLipSyncEvents: string[]; export declare function initAudioContext(): AudioContext | undefined; export declare class BasePlayer { static name: string; chaimu: Chaimu; fetch: FetchFunction; _src?: string; protected _currentSrc?: string; fetchOpts?: FetchOpts; protected isDestroyed: boolean; protected destructionPromise: Promise | undefined; protected storedVolume: number; protected lifecycleGeneration: number; private lifecycleQueue; private videoWithEvents; constructor(chaimu: Chaimu, src?: string); init(): Promise; clear(): Promise; destroy(): Promise; protected assertActive(): void; protected closeAudioContext(): Promise; protected unloadMediaElement(mediaElement: HTMLMediaElement | undefined): void; protected composeFetchSignal(lifecycleSignal?: AbortSignal): AbortSignal | undefined; protected enqueueLifecycle(operation: () => Promise): Promise; protected isVideoPlaying(): boolean; lipSync(_mode?: false | string): this; handleVideoEvent: (event: Event) => this; audioErrorHandle: (error: unknown) => void; removeVideoEvents(video?: HTMLVideoElement): this; addVideoEvents(video?: HTMLVideoElement): this; play(): Promise; pause(): Promise; get name(): string; set src(url: string | undefined); get src(): string | undefined; get currentSrc(): string | undefined; set volume(_value: number); get volume(): number; get playbackRate(): number; set playbackRate(_value: number); get currentTime(): number; } export declare class AudioPlayer extends BasePlayer { static name: string; audio: HTMLAudioElement; gainNode: GainNode | undefined; audioSource: MediaElementAudioSourceNode | undefined; constructor(chaimu: Chaimu, src?: string); initAudioBooster(): this; private disconnectAudioNodes; protected updateAudio(): this; init(): Promise; lipSync(mode?: false | string): this; clear(): Promise; syncPlay(): this; play(): Promise; pause(): Promise; set src(url: string | undefined); get src(): string | undefined; get currentSrc(): string | undefined; set volume(value: number); get volume(): number; get playbackRate(): number; set playbackRate(value: number); get currentTime(): number; } export declare class ChaimuPlayer extends BasePlayer { static name: string; audioBuffer: AudioBuffer | undefined; audioElement: HTMLAudioElement | undefined; mediaElementSource: MediaElementAudioSourceNode | undefined; gainNode: GainNode | undefined; blobUrl: string | undefined; private initializationAbortController; private cancelInitialization; private clearingPromise; private playbackGeneration; private sourceGeneration; fetchAudio(signal?: AbortSignal): Promise; initAudioBooster(): this; private disconnectAudioNodes; private releaseMediaResources; init(): Promise; protected createAudioElement(): void; lipSync(mode?: false | string): this; reopenCtx(): Promise; clear(): Promise; destroy(): Promise; play(): Promise; start(): Promise; pause(): Promise; set src(url: string | undefined); get src(): string | undefined; get currentSrc(): string | undefined; set volume(value: number); get volume(): number; set playbackRate(value: number); get playbackRate(): number; get currentTime(): number; } //# sourceMappingURL=player.d.ts.map