import { type HTMLCustomElement } from 'maverick.js/element';
import { type MediaContext } from '../../core/api/context';
import type { MediaFullscreenRequestTarget } from '../../core/api/request-events';
import type { MediaKeyShortcut } from '../../core/keyboard/types';
import { ToggleButton, type ToggleButtonProps } from './toggle-button';
declare global {
interface MaverickElements {
'media-fullscreen-button': MediaFullscreenButtonElement;
}
}
/**
* A button for toggling the fullscreen mode of the player.
*
* @docs {@link https://www.vidstack.io/docs/player/components/buttons/fullscreen-button}
* @see {@link https://www.vidstack.io/docs/player/core-concepts/fullscreen}
* @slot enter - Used to override the default enter fullscreen icon.
* @slot exit - Used to override the default exit fullscreen icon.
* @example
* ```html
*
* ```
*/
export declare class FullscreenButton extends ToggleButton {
static el: import("maverick.js/element").CustomElementDefinition;
protected _media: MediaContext;
protected _keyShortcut: MediaKeyShortcut;
protected onAttach(el: HTMLElement): void;
protected _onPress(event: Event): void;
protected _isPressed(): boolean;
protected _isHidden(): boolean;
protected _getLabel(): "Exit Fullscreen" | "Enter Fullscreen";
render(): import("maverick.js").JSX.Element;
}
export interface FullscreenButtonAPI {
props: FullscreenButtonProps;
}
export interface FullscreenButtonProps extends ToggleButtonProps {
/**
* The target element on which to request fullscreen on. The target can be `media`
* (i.e., ``) or `provider`. The `prefer-media` option will first see if the native
* fullscreen API is available, if not it'll try the media provider.
*/
target: MediaFullscreenRequestTarget | undefined;
}
export interface MediaFullscreenButtonElement extends HTMLCustomElement {
}