tethr
Version:
Controlls USB-connected cameras, webcam, and smartphone camera from browser
41 lines (40 loc) • 1.1 kB
TypeScript
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;