rangement/node_modules/exifr/index.d.ts

117 lines
3.3 KiB
TypeScript

/// <reference types="node" />
export as namespace exifr;
interface Tags {
[name: string]: string | number | number[] | Uint8Array
}
type Input = ArrayBuffer | SharedArrayBuffer | Buffer | Uint8Array | DataView | string | Blob | File | HTMLImageElement
type Filter = (string | number)[];
interface GpsOutput {
latitude: number,
longitude: number,
}
interface FormatOptions {
skip?: Filter,
pick?: Filter,
translateKeys?: boolean,
translateValues?: boolean,
reviveValues?: boolean,
parse?: boolean, // XMP only
multiSegment?: boolean, // XMP and icc only
}
interface Options extends FormatOptions {
// TIFF segment IFD blocks
tiff?: FormatOptions | boolean,
ifd0?: FormatOptions, // cannot be disabled.
ifd1?: FormatOptions | boolean,
exif?: FormatOptions | boolean,
gps?: FormatOptions | boolean,
interop?: FormatOptions | boolean,
// notable properties in TIFF
makerNote?: boolean,
userComment?: boolean,
// Other segments
xmp?: FormatOptions | boolean,
icc?: FormatOptions | boolean,
iptc?: FormatOptions | boolean,
// JPEG only segment
jfif?: FormatOptions | boolean,
// PNG only only segment
ihdr?: FormatOptions | boolean,
// other options
sanitize?: boolean,
mergeOutput?: boolean,
firstChunkSize?: number,
chunkSize?: number,
chunkLimit?: number,
}
interface IRotation {
deg: number;
rad: number;
scaleX: number;
scaleY: number;
dimensionSwapped: boolean;
css: boolean;
canvas: boolean;
}
export function parse(data: Input, options?: Options | Filter | boolean): Promise<any>;
export function gps(data: Input): Promise<GpsOutput>;
export function orientation(data: Input): Promise<number | undefined>;
export function rotation(data: Input): Promise<IRotation | undefined>;
export function thumbnail(data: Input): Promise<Uint8Array | Buffer | undefined>;
export function thumbnailUrl(data: Input): Promise<string | undefined>;
export function sidecar(data: Input, options?: Options, type?: string): Promise<object | undefined>;
export const rotations: {[index: number]: IRotation};
export const rotateCanvas: boolean;
export const rotateCss: boolean;
export const tagKeys: Map<string, Map<number, string>>;
export const tagValues: Map<string, Map<number, any>>;
export const tagRevivers: Map<string, Map<number, any>>;
export const fileParsers: Map<string, any>;
export const segmentParsers: Map<string, any>;
export const fileReaders: Map<string, any>;
export class Exifr {
constructor(options?: Options);
read(data: Input): Promise<void>;
parse(): Promise<any>;
extractThumbnail(): Promise<Uint8Array | undefined>;
}
declare const _default: {
parse: typeof parse;
gps: typeof gps;
orientation: typeof orientation;
rotation: typeof rotation;
thumbnail: typeof thumbnail;
thumbnailUrl: typeof thumbnailUrl;
sidecar: typeof sidecar;
rotations: typeof rotations;
rotateCanvas: typeof rotateCanvas;
rotateCss: typeof rotateCss;
tagKeys: typeof tagKeys;
tagValues: typeof tagValues;
tagRevivers: typeof tagRevivers;
fileParsers: typeof fileParsers;
segmentParsers: typeof segmentParsers;
fileReaders: typeof fileReaders;
Exifr: Exifr;
}
export default _default