import { AccessibilityProps } from '../shared/index.js';

interface VideoPlayerProps {
    src?: string;
    poster?: string;
    autoplay?: boolean;
    muted?: boolean;
    controls?: boolean;
}
type VideoState = 'idle' | 'loading' | 'playing' | 'paused' | 'ended';
interface VideoPlayerAPI {
    /** Current player state */
    state: VideoState;
    /** Transition to playing state */
    play: () => void;
    /** Transition to paused state */
    pause: () => void;
    /** Toggle between playing and paused */
    togglePlay: () => void;
    /** Toggle mute state */
    toggleMute: () => boolean;
    /** ARIA props for the player region */
    ariaProps: Partial<AccessibilityProps>;
    /** ARIA props for control buttons */
    controlAriaProps: {
        playPause: Partial<AccessibilityProps>;
        mute: Partial<AccessibilityProps>;
    };
    /** Data attributes reflecting current state */
    dataAttributes: Record<string, string>;
}
declare function createVideoPlayer(props?: VideoPlayerProps): VideoPlayerAPI;

declare const playerVariants: (props?: ({
    size?: "sm" | "md" | "lg" | "full" | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const controlsVariants: (props?: ({
    visibility?: "visible" | "hidden" | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const overlayVariants: (props?: ({
    visibility?: "visible" | "hidden" | undefined;
} & {
    className?: string;
}) | undefined) => string;

export { type VideoPlayerAPI, type VideoPlayerProps, type VideoState, controlsVariants, createVideoPlayer, overlayVariants, playerVariants };
