import React, { Ref } from 'react';
import { Html5CanvasPipeline, Html5VideoPipeline, HttpMsePipeline, Rtcp, Sdp, TransformationMatrix } from 'media-stream-library';
import { MetadataHandler } from './metadata';
import { Format } from './types';
export type PlayerNativeElement = HTMLVideoElement | HTMLCanvasElement | HTMLImageElement;
export type PlayerPipeline = Html5VideoPipeline | Html5CanvasPipeline | HttpMsePipeline;
export declare enum AxisApi {
    AXIS_IMAGE_CGI = "AXIS_IMAGE_CGI",
    AXIS_MEDIA_AMP = "AXIS_MEDIA_AMP",
    AXIS_MEDIA_CGI = "AXIS_MEDIA_CGI",
    AXIS_MJPEG_CGI = "AXIS_MJPEG_CGI"
}
export declare enum Protocol {
    HTTP = "http:",
    HTTPS = "https:",
    WS = "ws:",
    WSS = "wss:"
}
export declare const FORMAT_API: Record<Format, AxisApi>;
export interface VapixParameters {
    readonly [key: string]: string;
}
export type Range = readonly [number | undefined, number | undefined];
export interface VideoProperties {
    readonly el: PlayerNativeElement;
    readonly width: number;
    readonly height: number;
    readonly formatSupportsAudio: boolean;
    readonly pipeline?: PlayerPipeline;
    readonly media?: ReadonlyArray<{
        readonly type: 'video' | 'audio' | 'data';
        readonly mime: string;
    }>;
    readonly volume?: number;
    readonly range?: Range;
    readonly sensorTm?: TransformationMatrix;
}
interface PlaybackAreaProps {
    readonly forwardedRef?: Ref<PlayerNativeElement>;
    readonly host: string;
    readonly format: Format;
    readonly parameters?: VapixParameters;
    readonly play?: boolean;
    readonly offset?: number;
    readonly refresh: number;
    readonly onPlaying: (properties: VideoProperties) => void;
    readonly onEnded?: () => void;
    readonly onSdp?: (msg: Sdp) => void;
    readonly onRtcp?: (msg: Rtcp) => void;
    readonly metadataHandler?: MetadataHandler;
    readonly secure?: boolean;
    /**
     * Activate automatic retries on RTSP errors.
     */
    readonly autoRetry?: boolean;
}
export declare const PlaybackArea: React.FC<PlaybackAreaProps>;
export {};
