/// <reference types="node" />
import { EventEmitter } from 'events';
import { ViscaCommand } from './command';
import { ViscaTransport } from './transport';
export interface PTSpeed {
    panSpeed: number;
    tiltSpeed: number;
}
export interface PTPos {
    panPos: number;
    tiltPos: number;
}
export interface AFInterval {
    movementTime: number;
    intervalTime: number;
}
export declare class PTStatus {
    initStatus: number;
    initializing: boolean;
    ready: boolean;
    fail: boolean;
    moveStatus: number;
    moveDone: boolean;
    moveFail: boolean;
    atMaxL: boolean;
    atMaxR: boolean;
    atMaxU: boolean;
    atMaxD: boolean;
    moving: boolean;
    constructor();
    static fromData(data: number[]): PTStatus;
}
export declare class CamLensData {
    zooming: boolean;
    zoomPos: number;
    digitalZoomEnabled: boolean;
    focusing: boolean;
    focusPos: number;
    focusNearLimit: number;
    autoFocusMode: number;
    autoFocusSensitivity: number;
    autoFocusEnabled: boolean;
    lowContrast: boolean;
    loadingPreset: boolean;
    constructor();
    static fromData(data: number[]): CamLensData;
}
export declare class CamImageData {
    gain: number;
    gainr: number;
    gainb: number;
    wbMode: number;
    exposureMode: number;
    shutterPos: number;
    irisPos: number;
    gainPos: number;
    brightness: number;
    exposureCompPosition: number;
    highResEnabled: boolean;
    wideDEnabled: boolean;
    backlightCompEnabled: boolean;
    exposureCompEnabled: boolean;
    slowShutterAutoEnabled: boolean;
    constructor();
    static fromData(data: number[]): CamImageData;
}
export declare class CamWideDParams {
    screenDisplay: number;
    detectionSensitivity: number;
    shadowCorrectionLevel: number;
    highlightCorrectionLevel: number;
    exposureRatio: number;
    constructor();
    static fromData(data: number[]): CamWideDParams;
}
export declare class CameraStatus {
    panTiltStatus: PTStatus;
    zooming: boolean;
    zoomPos: number;
    digitalZoomEnabled: boolean;
    focusing: boolean;
    focusPos: number;
    focusNearLimit: number;
    autoFocusEnabled: boolean;
    autoFocusSensitivity: number;
    lowContrast: boolean;
    loadingPreset: boolean;
    rGain: number;
    bGain: number;
    apertureGain: number;
    wbMode: number;
    exposureMode: number;
    shutterPos: number;
    irisPos: number;
    gainPos: number;
    brightness: number;
    highResEnabled: boolean;
    wideDEnabled: boolean;
    backlightCompEnabled: boolean;
    exposureCompEnabled: boolean;
    exposureCompPosition: number;
    slowShutterAutoEnabled: boolean;
    powerStatus: boolean;
    ptPos: PTPos;
    ptSpeed: PTSpeed;
    icrMode: boolean;
    icrAutoMode: boolean;
    icrThreshold: number;
    gainLimit: number;
    autoFocusMode: number;
    autoFocusIntervalTime: number;
    focusIRCorrection: number;
    wideDMode: number;
    wideDParams: CamWideDParams;
    noiseReductionLevel: number;
    highSensitivityEnabled: boolean;
    frozen: boolean;
    effect: number;
    digitalEffect: number;
    digitalEffectLevel: number;
    chromaSuppressLevel: number;
    cameraID: number;
    colorGain: number;
    colorHue: number;
    videoFormatNow: number;
    videoFormatNext: number;
    constructor();
    updateImageData(imageData: CamImageData): void;
    updateLensData(lensData: CamLensData): void;
}
export declare class Camera extends EventEmitter {
    index: number;
    name: string;
    uuid: string;
    transport: ViscaTransport;
    status: CameraStatus;
    cameraBuffers: {
        [index: string]: ViscaCommand;
    };
    sentCommands: ViscaCommand[];
    commandQueue: ViscaCommand[];
    inquiryQueue: ViscaCommand[];
    commandReady: boolean;
    inquiryReady: boolean;
    updatetimer: NodeJS.Timeout;
    constructor(index: number, transport: ViscaTransport, name?: string);
    _clear(): void;
    _update(): void;
    _updateBooleans(): void;
    _expireOldCommands(): void;
    _processQueue(): void;
    _scheduleUpdate(): void;
    sendCommand(command: ViscaCommand): void;
    ack(viscaCommand: ViscaCommand): void;
    complete(viscaCommand: ViscaCommand): void;
    error(viscaCommand: ViscaCommand): void;
    inquireAll(): void;
    getPower(): void;
    getICRMode(): void;
    getICRAutoMode(): void;
    getICRThreshold(): void;
    getGainLimit(): void;
    getGain(): void;
    getGainR(): void;
    getGainB(): void;
    getDZoomMode(): void;
    getZoomPos(): void;
    getFocusAutoStatus(): void;
    getFocusAutoMode(): void;
    getFocusIRCorrection(): void;
    getFocusPos(): void;
    getFocusNearLimit(): void;
    getFocusAutoIntervalTime(): void;
    getFocusSensitivity(): void;
    getWBMode(): void;
    getExposureMode(): void;
    getShutterSlowMode(): void;
    getShutter(): void;
    getIris(): void;
    getBrightness(): void;
    getExposureCompStatus(): void;
    getExposureCompPosition(): void;
    getBacklightStatus(): void;
    getWideDStatus(): void;
    getWideDParams(): void;
    getAperture(): void;
    getHighResStatus(): void;
    getNoiseReductionStatus(): void;
    getHighSensitivityStatus(): void;
    getFreezeStatus(): void;
    getEffect(): void;
    getEffectDigital(): void;
    getEffectDigitalLevel(): void;
    getID(): void;
    getChromaSuppressStatus(): void;
    getColorGain(): void;
    getColorHue(): void;
    getVideoFormatNow(): void;
    getVideoFormatNext(): void;
    getPTPos(): void;
    getPTSpeed(): void;
    getPTStatus(): void;
    getLensData(): void;
    getImageData(): void;
}
