UNPKG

tethr

Version:

Controlls USB-connected cameras, webcam, and smartphone camera from browser

96 lines (95 loc) 4.99 kB
import { Aperture, DriveMode, ExposureMode, ImageSize, ISO, WhiteBalance } from '../configs'; import { DeviceInfo } from '../DeviceInfo'; import { DatatypeCode } from '../PTPDatacode'; import { PTPDevice, PTPEvent } from '../PTPDevice'; import { ConfigDesc, OperationResult, TakePhotoOption, Tethr } from '../Tethr'; import { TethrObject, TethrObjectInfo } from '../TethrObject'; import { TethrStorage } from '../TethrStorage'; type DevicePropScheme<T, D extends DatatypeCode> = { devicePropCode: number; datatypeCode: D; decode: (data: DataViewTypeForDatatypeCode<D>) => T | null; encode: (value: T) => DataViewTypeForDatatypeCode<D> | null; }; type DataViewTypeForDatatypeCode<D extends DatatypeCode> = D extends DatatypeCode.String ? string : D extends DatatypeCode.Uint64 ? bigint : D extends DatatypeCode.Int64 ? bigint : D extends DatatypeCode.Uint128 ? bigint : D extends DatatypeCode.Int128 ? bigint : number; export declare class TethrPTPUSB extends Tethr { readonly device: PTPDevice; protected _opened: boolean; constructor(device: PTPDevice); open(): Promise<void>; close(): Promise<void>; get opened(): boolean; get type(): 'ptpusb'; get name(): string; setLog(log: boolean): void; setAperture(value: Aperture): Promise<{ status: import("../Tethr").OperationResultStatus; message?: string | undefined; }>; getApertureDesc(): Promise<ConfigDesc<number | "auto">>; getBatteryLevelDesc(): Promise<ConfigDesc<number | "ac" | "low">>; getCanTakePhotoDesc(): Promise<ConfigDesc<boolean>>; setCaptureDelay(value: number): Promise<{ status: import("../Tethr").OperationResultStatus; message?: string | undefined; }>; getCaptureDelayDesc(): Promise<ConfigDesc<number>>; setDriveMode(value: DriveMode): Promise<{ status: import("../Tethr").OperationResultStatus; message?: string | undefined; }>; getDriveModeDesc(): Promise<ConfigDesc<"normal" | "burst" | "timelapse">>; setExposureComp(value: string): Promise<{ status: import("../Tethr").OperationResultStatus; message?: string | undefined; }>; getExposureCompDesc(): Promise<ConfigDesc<string>>; setExposureMode(value: ExposureMode): Promise<{ status: import("../Tethr").OperationResultStatus; message?: string | undefined; }>; getExposureModeDesc(): Promise<ConfigDesc<"video" | "C2" | "C1" | "C3" | `vendor:${string}` | "P" | "A" | "S" | "M" | "creative" | "action" | "portrait">>; setImageSize(value: ImageSize): Promise<{ status: import("../Tethr").OperationResultStatus; message?: string | undefined; }>; getImageSizeDesc(): Promise<ConfigDesc<string>>; setIso(value: ISO): Promise<{ status: import("../Tethr").OperationResultStatus; message?: string | undefined; }>; getIsoDesc(): Promise<ConfigDesc<number | "auto">>; getManufacturerDesc(): Promise<ConfigDesc<string>>; getModelDesc(): Promise<ConfigDesc<string>>; 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">>; setTimelapseNumber(value: number): Promise<{ status: import("../Tethr").OperationResultStatus; message?: string | undefined; }>; getTimelapseNumberDesc(): Promise<ConfigDesc<number>>; setTimelapseInterval(value: number): Promise<{ status: import("../Tethr").OperationResultStatus; message?: string | undefined; }>; getTimelapseIntervalDesc(): Promise<ConfigDesc<number>>; takePhoto({ doDownload }?: TakePhotoOption): Promise<OperationResult<TethrObject[]>>; protected setDevicePropValue<T, D extends DatatypeCode>({ devicePropCode, datatypeCode, encode, value, }: Omit<DevicePropScheme<T, D>, 'decode'> & { value: T; }): Promise<OperationResult>; protected getDevicePropDesc<T, D extends DatatypeCode>({ devicePropCode, datatypeCode, decode, }: Omit<DevicePropScheme<T, D>, 'encode'>): Promise<ConfigDesc<T>>; private isDevicePropSupported; protected getDeviceInfo(): Promise<DeviceInfo>; protected getObjectHandles(storageId?: number): Promise<number[]>; protected getObjectInfo(id: number): Promise<TethrObjectInfo>; protected getObject(objectID: number): Promise<ArrayBuffer>; protected getStorages(): Promise<TethrStorage[]>; protected onDevicePropChanged: (event: PTPEvent) => Promise<void>; protected getConfigNameByCode(code: number): keyof import("../configs").ConfigType | null; protected getObjectFormatNameByCode(code: number): string; static getDeviceInfo(device: PTPDevice): Promise<DeviceInfo>; } export {};