import { UIElement } from "./ui-element.js"; import { PlayerController } from "../player/controller.js"; import { ButtonState, InferComponentState, InferMediaState, MediaButtonComponent, StateAttrMap } from "@videojs/core"; import { ButtonActivationSource, UIEvent } from "@videojs/core/dom"; import { PropertyDeclarationMap, PropertyValues } from "@videojs/element"; import { State } from "@videojs/store"; import { Text } from "@videojs/core/i18n"; //#region src/ui/media-button-element.d.ts /** Abstract base for HTML custom elements that render a media-control button. */ declare abstract class MediaButtonElement extends UIElement { #private; static properties: PropertyDeclarationMap; disabled: boolean; label: Text | string; protected abstract readonly core: Core; protected abstract readonly stateAttrMap: StateAttrMap>; protected abstract readonly mediaState: PlayerController | undefined>; protected abstract activate(state: InferMediaState, event: UIEvent, source: ButtonActivationSource): void | Promise; protected getIsButtonDisabled(): boolean; protected handleActivate(event: UIEvent, source: ButtonActivationSource): void; /** Override to set the hotkey action name for `aria-keyshortcuts`. */ protected readonly hotkeyAction: string | undefined; /** Override to match hotkeys that use action values, such as seek steps. */ protected get hotkeyValue(): number | undefined; get $state(): State; connectedCallback(): void; disconnectedCallback(): void; /** Returns the button's current label derived from media state. */ getLabel(): string | undefined; getShortcut(): string | undefined; /** Resolved label for tooltips and other display surfaces. */ getResolvedLabel(): string | undefined; protected willUpdate(changed: PropertyValues): void; protected update(changed: PropertyValues): void; } //#endregion export { MediaButtonElement }; //# sourceMappingURL=media-button-element.d.ts.map