UNPKG

tethr

Version:

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

41 lines (40 loc) 1.1 kB
export declare enum IFDType { Byte = 1, Ascii = 2, Short = 3, Long = 4, Rational = 5, Undefined = 7, SignedShort = 8, Slong = 9, Srational = 10, Float = 11, Double = 12 } export type IFDValue<Type extends IFDType> = Type extends IFDType.Ascii ? string : Type extends IFDType.Undefined ? ArrayBuffer : number[]; export interface IFDScheme { [name: string]: { tag: number; type: IFDType; }; } export type IFDDecodeResult<Scheme extends IFDScheme> = { [K in keyof Scheme]: IFDValue<Scheme[K]['type']>; }; export declare function decodeIFD<Scheme extends IFDScheme>(data: ArrayBuffer, scheme: Scheme): IFDDecodeResult<Scheme>; export interface IFDData { [name: string]: { tag: number; type: IFDType.Ascii; value: string; } | { tag: number; type: IFDType.Undefined; value: ArrayBuffer; } | { tag: number; type: Exclude<IFDType, IFDType.Ascii | IFDType.Undefined>; value: number[]; }; } export declare function encodeIFD(data: IFDData): ArrayBuffer;