import React, { Ref } from 'react';
import { Sdp, Html5VideoPipeline, Html5CanvasPipeline, HttpMsePipeline, TransformationMatrix } from 'media-stream-library';
import { MetadataHandler } from './metadata';
export declare type PlayerNativeElement = HTMLVideoElement | HTMLCanvasElement | HTMLImageElement;
export declare 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"
}
export declare enum Format {
    'RTP_H264' = "RTP_H264",
    'RTP_JPEG' = "RTP_JPEG",
    'JPEG' = "JPEG",
    'MP4_H264' = "MP4_H264"
}
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 declare type Range = readonly [number | undefined, number | undefined];
export interface VideoProperties {
    readonly el: PlayerNativeElement;
    readonly width: number;
    readonly height: number;
    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 onSdp?: (msg: Sdp) => void;
    readonly metadataHandler?: MetadataHandler;
    readonly secure?: boolean;
    /**
     * Activate automatic retries on RTSP errors.
     */
    readonly autoRetry?: boolean;
}
export declare const PlaybackArea: React.FC<PlaybackAreaProps>;
export {};
