import type { Nullable } from "@vkontakte/videoplayer-shared"; import { Subject, Subscription } from "@vkontakte/videoplayer-shared"; import type { CustomError } from "../../../utils/Error"; import { ControlTap } from "../utils/ControlTap"; import type { ControlEventCallback, ControlCreateViewParams, Dimensions, Callbacks, Options, TControl, ControlOptions } from "./types"; import type { CssVarsManager } from "../../../utils/CssVarsManager"; type ControlContainer = { element: HTMLElement; dimensions: Dimensions; isManifestContainerDisabled: () => boolean; }; type ClickListener = (event: MouseEvent) => void; export declare abstract class Control { control: TControl; options: Options | undefined; container: Nullable; controlElement: Nullable; subscriptions: Subscription; error$: Subject; controlTap?: ControlTap; isInteracted: boolean; isRemoved: boolean; cssVarsManager: Nullable; constructor(control: TControl, options?: Options | undefined); setCssVarsManager(cssVarsManager: CssVarsManager): void; abstract createView(params: ControlCreateViewParams): void; abstract getElement(): Nullable; abstract disable(): void; abstract enable(): void; abstract onProgress(currentTimeMs: number): void; abstract onResize(): void; abstract setShowTimeRange(startTime: number, endTime: number): void; abstract updateFillAnimationDimensions(): void; abstract updateShadowStyles(isDark?: boolean): void; abstract toggleBlinkAnimation(enable?: boolean): void; onControlSelect: () => void; removeView(withTransition?: boolean): void; onTransitionEnd: (event: TransitionEvent) => void; onError(message: string | undefined, error: unknown): void; addControlTap(controlElement: HTMLElement): void; createContainerElement(callbacks: Callbacks): void; createClickListener(callback: AnyFn): ClickListener; featureIsEnabled(name: keyof ControlOptions["features"]): boolean; isTouch(): boolean; setEvents(callback: ControlEventCallback): void; removeListeners(): void; } export {};