filestack-js
Version:
Official JavaScript library for Filestack
436 lines (435 loc) • 9.66 kB
TypeScript
import { Session } from '../client';
/**
* Align enum
*/
export declare enum EAlignOptions {
left = "left",
right = "right",
center = "center",
bottom = "bottom",
top = "top"
}
/**
* Align enum with faces option
*/
export declare enum EAlignFacesOptions {
left = "left",
right = "right",
center = "center",
bottom = "bottom",
top = "top",
faces = "faces"
}
/**
* Fit enum
*/
export declare enum EFitOptions {
clip = "clip",
crop = "crop",
scale = "scale",
max = "max"
}
/**
* Blur enum
*/
export declare enum EBlurMode {
linear = "linear",
gaussian = "gaussian"
}
/**
* Shapes enum
*/
export declare enum EShapeType {
oval = "oval",
rect = "rect"
}
/**
* Noise type enum
*/
export declare enum ENoiseType {
none = "none",
low = "low",
medium = "medium",
high = "high"
}
/**
* Style type enum
*/
export declare enum EStyleType {
artwork = "artwork",
photo = "photo"
}
/**
* Color space enum
*/
export declare enum EColorspaceType {
RGB = "RGB",
CMYK = "CMYK",
Input = "Input"
}
/**
* Crop faces options enum
*/
export declare enum ECropfacesType {
thumb = "thumb",
crop = "crop",
fill = "fill"
}
/**
* SmartCrop mode options enum
*/
export declare enum ESmartCropMode {
fit = "fit",
auto = "auto"
}
export declare enum EImageWatermarkPosition {
top = "top",
middle = "middle",
bottom = "bottom",
left = "left",
center = "center",
right = "right"
}
/**
* Convert to format
*/
export declare enum EAudioTypes {
libmp3lame = "libmp3lame",
libvorbis = "libvorbis",
libfdk_aac = "libfdk_aac",
dib_ac3 = "dib_ac3",
pcm_s16le = "pcm_s16le",
mp2 = "mp2",
ac3 = "ac3",
eac3 = "eac3"
}
/**
* Convert to format
*/
export declare enum EVideoTypes {
h264 = "h264",
h264_hi = "h264.hi",
webm = "webm",
'webm-hi' = "webm.hi",
ogg = "ogg",
'ogg-hi' = "ogg.hi",
'hls-variant' = "hls.variant",
mp3 = "mp3",
oga = "oga",
m4a = "m4a",
aac = "aac",
hls = "hls.variant.audio"
}
export declare enum EUrlscreenshotAgent {
desktop = "desktop",
mobile = "mobile"
}
export declare enum EUrlscreenshotMode {
all = "all",
window = "window"
}
export declare enum EUrlscreenshotOrientation {
portrait = "portrait",
landscape = "landscape"
}
/**
* Video storage location
*/
export declare enum EVideoLocations {
s3 = "s3",
azure = "azure",
gcs = "gcs",
rackspace = "rackspace",
dropbox = "dropbox"
}
export declare enum EVideoAccess {
private = "private",
public = "public"
}
export declare enum EVideoAccessMode {
preserve = "preserve",
constrain = "constrain",
letterbox = "letterbox",
pad = "pad",
crop = "crop"
}
/**
* @see https://www.filestack.com/docs/image-transformations
*/
export interface TransformOptions {
flip?: boolean;
compress?: boolean;
flop?: boolean;
no_metadata?: boolean;
pjpg?: {
quality: number;
metadata: boolean;
};
smart_crop?: {
mode?: ESmartCropMode;
width: number;
height: number;
};
watermark?: {
files: string;
size?: number;
position?: EImageWatermarkPosition | EImageWatermarkPosition[];
};
imagesize?: boolean;
enchance?: boolean;
redeye?: boolean;
monochrome?: boolean;
negative?: boolean;
tags?: boolean;
sfw?: boolean;
store?: {
filename?: string;
location?: string;
path?: string;
container?: string;
region?: string;
access?: string;
base64decode?: boolean;
};
resize?: {
width?: number;
height?: number;
fit?: EFitOptions;
align?: EAlignFacesOptions;
};
crop?: {
dim: [number, number, number, number];
};
rotate?: {
deg: number | string;
color?: string;
background?: string;
};
detect_faces?: {
minsize?: number;
maxsize?: number;
color?: string;
export?: boolean;
} | true;
crop_faces?: {
mode?: ECropfacesType;
width?: number;
height?: number;
faces?: number | string;
buffer?: number;
};
pixelate_faces?: {
faces?: number | string;
minsize?: number;
maxsize?: number;
buffer?: number;
amount?: number;
blur?: number;
type?: EShapeType;
};
blur_faces?: {
faces?: number | string;
minsize?: number;
maxsize?: number;
buffer?: number;
amount?: number;
blur?: number;
type?: EShapeType;
};
rounded_corners?: {
radius?: number;
blur?: number;
background?: string;
} | true;
vignette?: {
amount?: number;
blurmode?: EBlurMode;
background?: string;
};
polaroid?: {
color?: string;
rotate?: number;
background?: string;
} | true;
torn_edges?: {
spread?: [number, number];
background?: string;
} | true;
shadow?: {
blur?: number;
opacity?: number;
vector?: [number, number];
color?: string;
background?: string;
} | true;
circle?: {
background?: string;
} | true;
border?: {
width?: number;
color?: string;
background?: string;
} | true;
sharpen?: {
amount: number;
} | true;
blur?: {
amount: number;
} | true;
blackwhite?: {
threshold: number;
} | true;
sepia?: {
tone: number;
} | true;
pixelate?: {
amount: number;
} | true;
oil_paint?: {
amount: number;
} | true;
modulate?: {
brightness?: number;
hue?: number;
saturation?: number;
} | true;
partial_pixelate?: {
amount?: number;
blur?: number;
type?: EShapeType;
objects?: [[number, number, number, number]];
};
partial_blur?: {
amount: number;
blur?: number;
type?: EShapeType;
objects?: [[number, number, number, number]];
};
collage?: {
margin?: number;
width?: number;
height?: number;
color?: string;
fit?: EFitOptions;
files: [string];
};
upscale?: {
upscale?: boolean;
noise?: ENoiseType;
style?: EStyleType;
} | true;
ascii?: {
background?: string;
foreground?: string;
colored?: boolean;
size?: number;
reverse?: boolean;
} | true;
quality?: {
value: number;
};
security?: {
policy: string;
signature?: string;
};
output?: {
format: string;
colorspace?: string;
strip?: boolean;
quality?: number;
page?: number;
compress?: boolean;
density?: number;
background?: string;
secure?: boolean;
docinfo?: boolean;
pageformat?: string;
pageorientation?: string;
};
cache?: {
cache?: boolean;
expiry: number;
};
video_convert?: {
aspect_mode: EVideoAccessMode;
preset?: EVideoTypes;
force?: boolean;
title?: string;
extname?: string;
filename?: string;
location?: EVideoLocations;
path?: string;
access?: EVideoAccess;
container?: string;
audio_bitrate?: number;
audio_codec?: EAudioTypes;
upscale: boolean;
video_bitrate?: number;
audio_sample_rate?: number;
audio_channels?: number;
clip_length?: string;
clip_offset?: string;
width?: number;
height?: number;
two_pass?: boolean;
fps?: number;
keyframe_interval?: number;
watermark_url?: string;
watermark_top?: number;
watermark_bottom?: number;
watermark_right?: number;
watermark_left?: number;
watermark_width?: number;
watermark_height?: number;
};
urlscreenshot?: {
agent?: EUrlscreenshotAgent;
width?: number;
height?: number;
mode?: EUrlscreenshotMode;
delay?: number;
orientation?: EUrlscreenshotOrientation;
device?: string;
} | true;
pdfinfo?: {
colorinfo?: boolean;
} | true;
pdfconvert?: {
pageorientation?: string;
pageformat?: string;
pages?: (string | number)[];
};
}
/**
* Creates filestack transform url.
* Transform params can be provided in camelCase or snakeCase style
*
* @example
* ```js
* // camelCase
* console.log(transform(session, {
* partialPixelate: {
* objects: [[10, 20, 200, 250], [275, 91, 500, 557]],
* },
* }, 'testfile'));
* ```
* result => https://cdn.filestackcontent.com/partial_pixelate=objects:[[10,20,200,250],[275,91,500,557]]/testfile
*
* ```js
* // snake_case
* console.log(transform(session, {
* partial_pixelate: {
* objects: [[10, 20, 200, 250], [275, 91, 500, 557]],
* },
* }, 'testfile'));
* ```
* result => https://cdn.filestackcontent.com/partial_pixelate=objects:[[10,20,200,250],[275,91,500,557]]/testfile
*
* Client.transform is deprecated. Use Filelink class instead
*
* @private
* @throws Error
* @param options Transformation options
* @param url url, handle or array of elements
*/
export declare const transform: (session: Session, url: string | string[], options?: TransformOptions, b64?: boolean) => string;