/// <reference types="react" />
import type { CallbackListener, PlayerEventTypes } from './event-emitter.js';
import { PlayerEmitter } from './event-emitter.js';
export { PlayerMethods, PlayerRef, ThumbnailMethods, ThumbnailRef, } from './player-methods.js';
export { Player, PlayerProps } from './Player.js';
export type { RenderFullscreenButton, RenderPlayPauseButton, } from './PlayerControls.js';
export type { ErrorFallback, RenderLoading, RenderPoster } from './PlayerUI.js';
export { Thumbnail } from './Thumbnail.js';
export { Size } from './utils/use-element-size.js';
export type { CallbackListener, PlayerEventTypes as EventTypes };
export declare const PlayerInternals: {
    PlayerEventEmitterContext: import("react").Context<PlayerEmitter | undefined>;
    PlayerEmitter: typeof PlayerEmitter;
    usePlayer: () => {
        frameBack: (frames: number) => void;
        frameForward: (frames: number) => void;
        isLastFrame: boolean;
        isFirstFrame: boolean;
        emitter: PlayerEmitter;
        playing: boolean;
        play: (e?: import("react").SyntheticEvent<Element, Event> | undefined) => void;
        pause: () => void;
        pauseAndReturnToPlayStart: () => void;
        seek: (newFrame: number) => void;
        getCurrentFrame: () => number;
        isPlaying: () => boolean;
        hasPlayed: boolean;
        isBuffering: () => boolean;
        remotionInternal_currentFrameRef: import("react").MutableRefObject<number>;
    };
    usePlayback: ({ loop, playbackRate, moveToBeginningWhenEnded, inFrame, outFrame, frameRef, }: {
        loop: boolean;
        playbackRate: number;
        moveToBeginningWhenEnded: boolean;
        inFrame: number | null;
        outFrame: number | null;
        frameRef: import("react").MutableRefObject<number>;
    }) => void;
    useElementSize: (ref: import("react").RefObject<HTMLElement>, options: {
        triggerOnWindowResize: boolean;
        shouldApplyCssTransforms: boolean;
    }) => import("./utils/use-element-size.js").Size | null;
    calculateCanvasTransformation: ({ previewSize, compositionWidth, compositionHeight, canvasSize, }: {
        previewSize: number | "auto";
        compositionWidth: number;
        compositionHeight: number;
        canvasSize: import("./utils/use-element-size.js").Size;
    }) => {
        centerX: number;
        centerY: number;
        xCorrection: number;
        yCorrection: number;
        scale: number;
    };
    useHoverState: (ref: import("react").RefObject<HTMLDivElement>, hideControlsWhenPointerDoesntMove: number | boolean) => boolean;
    updateAllElementsSizes: () => void;
    PlayerEmitterProvider: import("react").FC<{
        children: import("react").ReactNode;
        currentPlaybackRate: number | null;
    }>;
    BufferingIndicator: import("react").FC<{
        type: "player" | "studio";
    }>;
};
