import type { MouseEventHandler, ReactNode } from 'react';
import React from 'react';
import type { usePlayer } from './use-player.js';
import type { Size } from './utils/use-element-size.js';
export type RenderPlayPauseButton = (props: {
    playing: boolean;
    isBuffering: boolean;
}) => ReactNode | null;
export type RenderFullscreenButton = (props: {
    isFullscreen: boolean;
}) => ReactNode;
declare global {
    interface Document {
        webkitFullscreenEnabled?: boolean;
        webkitFullscreenElement?: Element;
        webkitExitFullscreen?: Document['exitFullscreen'];
    }
    interface HTMLDivElement {
        webkitRequestFullScreen: HTMLDivElement['requestFullscreen'];
    }
}
export declare const Controls: React.FC<{
    fps: number;
    durationInFrames: number;
    showVolumeControls: boolean;
    player: ReturnType<typeof usePlayer>;
    onFullscreenButtonClick: MouseEventHandler<HTMLButtonElement>;
    isFullscreen: boolean;
    allowFullscreen: boolean;
    onExitFullscreenButtonClick: MouseEventHandler<HTMLButtonElement>;
    spaceKeyToPlayOrPause: boolean;
    onSeekEnd: () => void;
    onSeekStart: () => void;
    inFrame: number | null;
    outFrame: number | null;
    initiallyShowControls: number | boolean;
    canvasSize: Size | null;
    renderPlayPauseButton: RenderPlayPauseButton | null;
    renderFullscreenButton: RenderFullscreenButton | null;
    alwaysShowControls: boolean;
    showPlaybackRateControl: boolean | number[];
    containerRef: React.RefObject<HTMLDivElement>;
    buffering: boolean;
    hideControlsWhenPointerDoesntMove: boolean | number;
    onPointerUp: React.PointerEventHandler<HTMLDivElement> | undefined;
    onDoubleClick: MouseEventHandler<HTMLDivElement> | undefined;
}>;
