import { BiMap } from 'bim';
import { vec2 } from 'linearly';
import { Aperture, BatteryLevel, ExposureMode, FocusMeteringMode, FocusPeaking, ImageAspect, ISO, ShutterSpeed, WhiteBalance } from '../configs';
import { ConfigDesc, OperationResult, OperationResultStatus, TakePhotoOption } from '../Tethr';
import { TethrObject } from '../TethrObject';
import { TethrStorage } from '../TethrStorage';
import { TethrPTPUSB } from '.';
export declare class TethrSigma extends TethrPTPUSB {
    #private;
    open(): Promise<void>;
    close(): Promise<void>;
    getAperture(): Promise<Aperture | null>;
    setAperture(aperture: Aperture): Promise<OperationResult>;
    getApertureDesc(): Promise<ConfigDesc<Aperture>>;
    getAutoFocusFrameCenterDesc(): Promise<ConfigDesc<vec2>>;
    setAutoFocusFrameCenter(center: vec2): Promise<OperationResult>;
    getAutoFocusFrameSizeDesc(): Promise<ConfigDesc<string>>;
    setAutoFocusFrameSize(size: string): Promise<OperationResult>;
    getBatteryLevelDesc(): Promise<ConfigDesc<BatteryLevel>>;
    getCanTakePhotoDesc(): Promise<ConfigDesc<boolean>>;
    getCanRunAutoFocusDesc(): Promise<ConfigDesc<boolean>>;
    getCanStartLiveviewDesc(): Promise<ConfigDesc<boolean>>;
    setColorMode(colorMode: string): Promise<OperationResult>;
    getColorModeDesc(): Promise<ConfigDesc<string>>;
    getColorTemperature(): Promise<number | null>;
    setColorTemperature(value: number): Promise<OperationResult>;
    getColorTemperatureDesc(): Promise<ConfigDesc<number>>;
    setDestinationToSave(value: string): Promise<OperationResult>;
    getDestinationToSaveDesc(): Promise<ConfigDesc<string>>;
    getExposureMode(): Promise<ExposureMode | null>;
    setExposureMode(exposureMode: ExposureMode): Promise<OperationResult>;
    getExposureModeDesc(): Promise<ConfigDesc<ExposureMode>>;
    getExposureComp(): Promise<string | null>;
    setExposureComp(value: string): Promise<OperationResult>;
    getExposureCompDesc(): Promise<ConfigDesc<string>>;
    getFocalLengthDesc(): Promise<({
        value: any;
    } & {
        writable: true;
        option: import("..").ConfigDescOption<any>;
    }) | ({
        value: any;
    } & {
        writable: false;
        option?: import("..").ConfigDescOption<any> | undefined;
    })>;
    getFocusDistanceDesc(): Promise<ConfigDesc<number>>;
    setFocusDistance(value: number): Promise<OperationResult>;
    getFocusMeteringModeDesc(): Promise<ConfigDesc<FocusMeteringMode>>;
    setFocusMeteringMode(value: FocusMeteringMode): Promise<OperationResult>;
    setImageAspect(imageAspect: ImageAspect): Promise<OperationResult>;
    getImageAspectDesc(): Promise<ConfigDesc<ImageAspect>>;
    setImageQuality(imageQuality: string): Promise<OperationResult>;
    getImageQualityDesc(): Promise<ConfigDesc<string>>;
    setImageSize(imageSize: string): Promise<OperationResult>;
    getImageSizeDesc(): Promise<ConfigDesc<string>>;
    getIso(): Promise<ISO | null>;
    setIso(iso: ISO): Promise<OperationResult>;
    getIsoDesc(): Promise<ConfigDesc<ISO>>;
    setLiveviewMagnifyRatio(value: number): Promise<OperationResult>;
    getLiveviewMagnifyRatioDesc(): Promise<ConfigDesc<number>>;
    getShutterSpeed(): Promise<ShutterSpeed | null>;
    setShutterSpeed(ss: ShutterSpeed): Promise<OperationResult>;
    getShutterSpeedDesc(): Promise<ConfigDesc<ShutterSpeed>>;
    getShutterSoundDesc(): Promise<ConfigDesc<number>>;
    setShutterSound(value: number): Promise<{
        status: OperationResultStatus;
        message?: string | undefined;
    }>;
    getWhiteBalance(): Promise<WhiteBalance | null>;
    setWhiteBalance(wb: WhiteBalance): Promise<OperationResult>;
    getWhiteBalanceDesc(): Promise<ConfigDesc<WhiteBalance>>;
    takePhoto({ doDownload }?: TakePhotoOption): Promise<OperationResult<TethrObject[]>>;
    runAutoFocus(): Promise<OperationResult>;
    startLiveview(): Promise<OperationResult<MediaStream>>;
    getLiveview(): Promise<MediaStream | null>;
    stopLiveview(): Promise<OperationResult>;
    startRec(): Promise<OperationResult>;
    stopRec(): Promise<OperationResult>;
    startBulb(): Promise<OperationResult>;
    endBulb(): Promise<OperationResult>;
    getStorages(): Promise<TethrStorage[]>;
    private getMovieFileInfo;
    private getCamStatus;
    private getCamCanSetInfo;
    private setCamData;
    private getCamCaptStatus;
    /**
     *
     * @returns true if succeed
     */
    private executeSnapCommand;
    private clearImageDBAll;
    private getPictFileInfo2;
    private checkConfigChange;
    /**
     * Encode parameter to fit fp's SDK format
     * (Byte length on the head, and checksum on the tail)
     */
    private encodeParameter;
    private colorModeTable;
    private imageAspectTable;
    private imageAspectTableIFD;
    private isoTable;
    private compensationOneThirdTable;
    private shutterSpeedOneThirdTable;
    private shutterSpeedHalfTable;
    private apertureOneThirdTable;
    private apertureHalfTable;
    protected exposureModeTable: BiMap<number, ExposureMode>;
    protected focusPeakingTable: BiMap<number, FocusPeaking>;
    protected liveviewMagnifyRatioTable: BiMap<number, number>;
    private batteryLevelTable;
    private whiteBalanceTable;
    private whiteBalanceTableIFD;
    private imageSizeTable;
    private imageSizeTableIFD;
    private destinationToSaveTable;
    private focusAreaTable;
}
