import { BiMap } from 'bim';
import { Aperture, ColorMode, ExposureComp, ExposureMode, ImageAspect, ISO, ManualFocusOption, ShutterSpeed, WhiteBalance } from '../configs';
import { PTPDevice, PTPEvent } from '../PTPDevice';
import { ConfigDesc, OperationResult, TakePhotoOption } from '../Tethr';
import { TethrObject } from '../TethrObject';
import { TethrPTPUSB } from './TethrPTPUSB';
export declare class TethrPanasonic extends TethrPTPUSB {
    #private;
    constructor(device: PTPDevice);
    open(): Promise<void>;
    close(): Promise<void>;
    setAperture(value: Aperture): Promise<{
        status: import("../Tethr").OperationResultStatus;
        message?: string | undefined;
    }>;
    getApertureDesc(): Promise<ConfigDesc<number>>;
    setColorMode(value: ColorMode): Promise<{
        status: import("../Tethr").OperationResultStatus;
        message?: string | undefined;
    }>;
    getColorModeDesc(): Promise<ConfigDesc<string>>;
    getExposureModeDesc(): Promise<ConfigDesc<"video" | "C2" | "C1" | "C3" | `vendor:${string}` | "P" | "A" | "S" | "M" | "creative" | "action" | "portrait">>;
    setExposureComp(value: ExposureComp): Promise<{
        status: import("../Tethr").OperationResultStatus;
        message?: string | undefined;
    }>;
    getExposureCompDesc(): Promise<ConfigDesc<string>>;
    getManualFocusOptionsDesc(): Promise<ConfigDesc<("near:2" | "near:1" | "near:3" | "far:2" | "far:1" | "far:3")[]>>;
    getCanTakePhotoDesc(): Promise<ConfigDesc<boolean>>;
    getCanRunAutoFocusDesc(): Promise<ConfigDesc<boolean>>;
    getCanRunManualFocusDesc(): Promise<ConfigDesc<boolean>>;
    getCanStartLiveviewDesc(): Promise<ConfigDesc<boolean>>;
    setColorTemperature(value: number): Promise<{
        status: import("../Tethr").OperationResultStatus;
        message?: string | undefined;
    }>;
    getColorTemperatureDesc(): Promise<ConfigDesc<number>>;
    setImageAspect(value: ImageAspect): Promise<{
        status: import("../Tethr").OperationResultStatus;
        message?: string | undefined;
    }>;
    getImageAspectDesc(): Promise<ConfigDesc<`${number}:${number}` | "a size">>;
    setImageQuality(value: string): Promise<{
        status: import("../Tethr").OperationResultStatus;
        message?: string | undefined;
    }>;
    getImageQualityDesc(): Promise<ConfigDesc<string>>;
    setIso(value: ISO): Promise<{
        status: import("../Tethr").OperationResultStatus;
        message?: string | undefined;
    }>;
    getIsoDesc(): Promise<ConfigDesc<number | "auto">>;
    setWhiteBalance(value: WhiteBalance): Promise<{
        status: import("../Tethr").OperationResultStatus;
        message?: string | undefined;
    }>;
    getWhiteBalanceDesc(): Promise<ConfigDesc<"auto" | `vendor:${string}` | "auto cool" | "auto warm" | "auto ambience" | "daylight" | "shade" | "cloud" | "incandescent" | "fluorescent" | "tungsten" | "flash" | "underwater" | "manual" | "custom">>;
    private setDevicePropValuePanasonic;
    private getDevicePropDescPanasonic;
    setShutterSpeed(value: ShutterSpeed): Promise<{
        status: import("../Tethr").OperationResultStatus;
        message?: string | undefined;
    }>;
    getShutterSpeedDesc(): Promise<ConfigDesc<`${number}` | "auto" | "bulb" | `1/${number}`>>;
    takePhoto({ doDownload }?: TakePhotoOption): Promise<OperationResult<TethrObject[]>>;
    startLiveview(): Promise<OperationResult<MediaStream>>;
    stopLiveview(): Promise<OperationResult>;
    getLiveviewSizeDesc(): Promise<ConfigDesc<string>>;
    setLiveviewSize(value: string): Promise<OperationResult>;
    private getLiveviewRecommendedSettings;
    private getLiveviewSetting;
    private setLiveviewSetting;
    runManualFocus(option: ManualFocusOption): Promise<OperationResult>;
    runAutoFocus(): Promise<OperationResult>;
    protected onDevicePropChanged: (ev: PTPEvent) => Promise<void>;
    protected getObjectFormat(code: number): string;
    protected exposureModeTable: BiMap<number, ExposureMode>;
    protected whiteBalanceTable: BiMap<number, WhiteBalance>;
    protected colorModeTable: BiMap<number, string>;
    protected imageAspectTable: BiMap<number, ImageAspect>;
    protected imageQualityTable: BiMap<number, string>;
}
