import { ValueSubject } from "@vkontakte/videoplayer-shared"; import type { ExternalPictureInPictureEventHandlers, IPictureInPictureApi, PictureInPictureSettings } from "../../../types"; import { PictureInPictureType } from "../../../types"; export declare class PictureInPictureApi implements IPictureInPictureApi { private isRequested; private videoElement; private playerContainer; private svelteContext; private externalEventHandlers; private readonly eventHandlers; info: { isActive$: ValueSubject; isEnabled$: ValueSubject; type: PictureInPictureType; }; constructor({ enabled }: PictureInPictureSettings); /** * Флаг показывает, есть ли в целом возможность использовать pip в данном браузере, поддерживается ли это. */ isSupported(): boolean; /** * Флаг показывает, находится ли пользователь в режиме pip. */ isActive(): boolean; setContext(svelteContext: Map): void; revealPictureInPicture(): Promise; request(): Promise; exit(): Promise; assignPlayerContainer(playerContainer: HTMLElement): void; updateVideoElement(): void; private addEventHandlers; setExternalEventHandlers(externalEventHandlers: ExternalPictureInPictureEventHandlers): void; private removeEventHandlers; dispose(): Promise; private onEnterPictureInPicture; private onLeavePictureInPicture; private onResize; /** * Флаг определяет может ли пользователь переходить в pip на уровне бизнес логике. */ setEnabled(enabled: boolean): void; /** * для сафари нужно корректно обновить состояние пипа, потому что если мы попали сюда * из за креша провайдера + клика на выход из пип-а, то сафари может не успеть прислать * leavepictureinpicture на старый элемент из за чего UI застрянет в неправильном состоянии */ private waitForSafariLeavePictureInPicture; } export declare function isInstanceOfPictureInPictureApi(pictureInPictureApi?: IPictureInPictureApi): pictureInPictureApi is PictureInPictureApi;