filestack-js
Version:
Official JavaScript library for Filestack
2,513 lines • 75.1 kB
TypeScript
export declare enum Align {
left = "left",
right = "right",
center = "center",
bottom = "bottom",
top = "top",
faces = "faces",
middle = "middle"
}
/**
* Align
*/
export type AlignOptions = Align | [Align.top | Align.middle | Align.bottom, Align.left | Align.center | Align.right];
/**
* Fit enum
*/
export declare enum FitOptions {
clip = "clip",
crop = "crop",
scale = "scale",
max = "max"
}
/**
* Blur enum
*/
export declare enum BlurMode {
linear = "linear",
gaussian = "gaussian"
}
/**
* Shapes enum
*/
export declare enum ShapeType {
oval = "oval",
rect = "rect"
}
/**
* Noise type enum
*/
export declare enum NoiseType {
none = "none",
low = "low",
medium = "medium",
high = "high"
}
/**
* Style type enum
*/
export declare enum StyleType {
artwork = "artwork",
photo = "photo"
}
/**
* Color space enum
*/
export declare enum ColorspaceType {
RGB = "RGB",
CMYK = "CMYK",
Input = "Input"
}
/**
* Crop faces options enum
*/
export declare enum CropfacesType {
thumb = "thumb",
crop = "crop",
fill = "fill"
}
/**
* Watermark postion options enum
*/
export declare enum ImageWatermarkPosition {
top = "top",
middle = "middle",
bottom = "bottom",
left = "left",
center = "center",
right = "right"
}
/**
* SmartCrop options enum
*/
export declare enum SmartCropMode {
face = "face",
auto = "auto"
}
/**
* Convert to format
*/
export declare enum AudioTypes {
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 VideoTypes {
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 URLScreenshotAgent {
desktop = "desktop",
mobile = "mobile"
}
export declare enum URLScreenshotMode {
all = "all",
window = "window"
}
export declare enum URLScreenshotOrientation {
portrait = "portrait",
landscape = "landscape"
}
/**
* Video storage location
*/
export declare enum Locations {
s3 = "s3",
azure = "azure",
gcs = "gcs",
rackspace = "rackspace",
dropbox = "dropbox"
}
export declare enum VideoAccess {
private = "private",
public = "public"
}
export declare enum VideoAccessMode {
preserve = "preserve",
constrain = "constrain",
letterbox = "letterbox",
pad = "pad",
crop = "crop"
}
export interface StoreBaseParams {
location?: string;
path?: string;
container?: string;
region?: string;
access?: string;
disableStorageKey?: boolean;
}
/**
* Available options for store transformations
*
* @export
* @interface StoreParams
*/
export type StoreParams = StoreBaseParams & {
filename?: string;
base64decode?: boolean;
};
export interface AnimationParams {
delay?: number;
loop?: number;
width?: number;
height?: number;
fit?: FitOptions;
align?: AlignOptions;
background?: string;
}
export interface ResizeParams {
width?: number;
height?: number;
fit?: FitOptions;
align?: AlignOptions;
}
export interface CropParams {
dim: [number, number, number, number];
}
export interface RotateParams {
deg: number | string;
color?: string;
background?: string;
}
export interface DetectFacesParams {
minsize?: number;
maxsize?: number;
color?: string;
export?: boolean;
}
export interface CropFacesParams {
mode?: CropfacesType;
width?: number;
height?: number;
faces?: number | string;
buffer?: number;
}
export interface PixelateFacesParams {
faces?: number | string;
minsize?: number;
maxsize?: number;
buffer?: number;
amount?: number;
blur?: number;
type?: ShapeType;
}
export interface BlurFacesParams {
faces?: number | string;
minsize?: number;
maxsize?: number;
buffer?: number;
amount?: number;
blur?: number;
type?: ShapeType;
}
export interface RoundedCornersParams {
radius?: number;
blur?: number;
background?: string;
}
export interface VignetteParams {
amount?: number;
blurmode?: BlurMode;
background?: string;
}
export interface PolaroidParams {
color?: string;
rotate?: number;
background?: string;
}
export interface TornEdgesParams {
spread?: [number, number];
background?: string;
}
export interface ShadowParams {
blur?: number;
opacity?: number;
vector?: [number, number];
color?: string;
background?: string;
}
export interface CircleParams {
background?: string;
}
export interface BorderParams {
width?: number;
color?: string;
background?: string;
}
export interface CompressParams {
metadata?: boolean;
}
export interface WatermarkParams {
file: string;
size?: number;
position?: ImageWatermarkPosition | ImageWatermarkPosition[];
}
export interface ProgressiveJpgParams {
quality: number;
metadata: boolean;
}
export interface SmartCropParams {
mode: SmartCropMode;
width: number;
height: number;
}
export interface SharpenParams {
amount: number;
}
export interface BlurParams {
amount: number;
}
export interface BlackwhiteParams {
threshold: number;
}
export interface SepiaParams {
tone: number;
}
export interface PixelateParams {
amount: number;
}
export interface OilPaintParams {
amount: number;
}
export interface ModulateParams {
brightness?: number;
hue?: number;
saturation?: number;
}
export interface PartialPixelateParams {
amount?: number;
blur?: number;
type?: ShapeType;
objects?: [[number, number, number, number]];
}
export interface PartialBlurParams {
amount: number;
blur?: number;
type?: ShapeType;
objects?: [[number, number, number, number]];
}
export interface CollageParams {
margin?: number;
width?: number;
height?: number;
color?: string;
fit?: FitOptions;
files: [string];
}
export interface UpscaleParams {
upscale?: boolean;
noise?: NoiseType;
style?: StyleType;
}
export interface AsciiParams {
background?: string;
foreground?: string;
colored?: boolean;
size?: number;
reverse?: boolean;
}
export interface QualityParams {
value: number;
}
export interface SecurityParams {
policy: string;
signature?: string;
}
export interface OutputParams {
format: string;
colorspace?: string;
strip?: boolean;
quality?: number;
page?: number;
compress?: boolean;
density?: number;
background?: string;
secure?: boolean;
docinfo?: boolean;
pageformat?: string;
pageorientation?: string;
}
export interface CacheParams {
cache?: boolean;
expiry: number;
}
export interface VideoConvertParams {
aspect_mode: VideoAccessMode;
preset?: VideoTypes;
force?: boolean;
title?: string;
extname?: string;
filename?: string;
location?: Locations;
path?: string;
access?: VideoAccess;
container?: string;
audio_bitrate?: number;
audio_codec?: AudioTypes;
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;
}
export interface URLScreenshotParams {
agent?: URLScreenshotAgent;
width?: number;
height?: number;
mode?: URLScreenshotMode;
delay?: number;
orientation?: URLScreenshotOrientation;
device?: string;
}
export declare enum EnhancePreset {
auto = "auto",
vivid = "vivid",
beautify = "beautify",
beautifyPlus = "beautify_plus",
fixDark = "fix_dark",
fixNoise = "fix_noise",
fixTint = "fix_tint",
outdor = "outdoor",
fireworks = "fireworks"
}
export interface EnhanceParams {
preset?: EnhancePreset;
}
export interface PdfInfoParams {
colorinfo?: boolean;
}
export interface PdfConvertParams {
pageorientation?: string;
pageformat?: string;
pages?: (string | number)[];
}
export interface FallbackParams {
handle: string;
cache?: number;
}
export interface MinifyCssParams {
gzip?: boolean;
level?: number;
}
export interface MinifyJsParams {
gzip?: boolean;
use_babel_polyfill?: boolean;
keep_fn_name?: boolean;
keep_class_name?: boolean;
mangle?: boolean;
merge_vars?: boolean;
remove_console?: boolean;
remove_undefined?: boolean;
targets?: null | string;
}
/**
* Class for handling filelinks. For now its supports all filestack transforms.
* It outputs transform url or array of transforms
* @example
* const link = new Filelink('handle or externalUrl', 'apikey');
* link.flip().flop().store();
*
* console.log(link.toString());
* // enable base64 support
* link.setBase64(true)
*
* console.log(link.toString());
*
* @export
* @class Filelink
*/
export declare class Filelink {
/**
* Validator instance
*
* @private
* @memberof Filelink
*/
private static validator;
/**
* Applied transforms array
*
* @private
* @memberof Filelink
*/
private transforms;
/**
* Handle or multiple handles in array
*
* @private
* @memberof Filelink
*/
private source;
/**
* Application key
*
* @private
* @type {string}
* @memberof Filelink
*/
private apikey;
/**
* Is base64 support is enabled
*
* @private
* @type {boolean}
* @memberof Filelink
*/
private b64;
/**
* should use a validator to check params of every task
* @private
* @type {boolean}
* @memberof Filelink
*/
private useValidator;
/**
* Custom CNAME
*
* @private
* @type {string}
* @memberof Filelink
*/
private cname;
/**
* Overwrite domain (test purposes)
*
* @private
* @type {string}
* @memberof Filelink
*/
private customDomain;
/**
* Class for generating tranformation urls
* @param {(string | string[])} source - handle or multiple handles (i.e. for collage)
* @param {string} [apikey] - your apikey - required for all external sources
*
* @memberof Filelink
*/
constructor(source: string | string[], apikey?: string);
/**
* Enable new base64 link support to avoid problems with special chars in link
*
* @param {boolean} flag
* @returns
* @memberof Filelink
*/
setBase64(flag: boolean): this;
/**
* Switch the useValidator flag
*
* @param {boolean} flag
* @returns
* @memberof Filelink
*/
setUseValidator(flag: boolean): this;
/**
* Set cname for transformation link
*
* @param {string} cname
* @returns
* @memberof Filelink
*/
setCname(cname: string): this;
/**
* Set custom domain. Used for test purpose. It will be removed when after client.transform
*
* @param {string} domain
* @returns
* @memberof Filelink
*/
setCustomDomain(domain: string): this;
setSource(source: string | string[]): void;
/**
* Returns JSONSchema form transformations params
*
* @returns
* @memberof Filelink
*/
getValidationSchema(): {
$schema: string;
title: string;
description: string;
type: string;
additionalProperties: boolean;
properties: {
flip: {
type: string;
additionalProperties: boolean;
};
auto_image: {
type: string;
additionalProperties: boolean;
};
no_metadata: {
type: string;
additionalProperties: boolean;
};
compress: {
additionalProperties: boolean;
oneOf: ({
type: string;
properties?: undefined;
} | {
type: string;
properties: {
metadata: {
type: string;
default: boolean;
};
};
})[];
};
flop: {
type: string;
additionalProperties: boolean;
};
enhance: {
default: boolean;
oneOf: ({
type: string;
additionalProperties?: undefined;
properties?: undefined;
} | {
type: string;
additionalProperties: boolean;
properties: {
preset: {
type: string;
enum: string[];
};
};
})[];
};
redeye: {
type: string;
additionalProperties: boolean;
};
monochrome: {
type: string;
additionalProperties: boolean; /**
* Watermark postion options enum
*/
};
negative: {
type: string;
additionalProperties: boolean;
};
tags: {
type: string;
additionalProperties: boolean;
};
sfw: {
type: string;
additionalProperties: boolean;
};
imagesize: {
type: string;
additionalProperties: boolean;
};
smart_crop: {
width: {
type: string;
minimum: number;
maximum: number;
};
height: {
type: string;
minimum: number;
maximum: number;
};
mode: {
type: string;
default: string;
enum: string[];
};
};
animate: {
type: string;
properties: {
delay: {
type: string;
minimum: number;
maximum: number;
default: number;
};
loop: {
type: string;
minimum: number;
maximum: number;
default: number;
};
width: {
type: string;
minimum: number;
maximum: number;
};
height: {
type: string;
minimum: number;
maximum: number;
};
fit: {
type: string;
default: string;
enum: string[];
};
background: {
$ref: string;
default: string;
};
align: {
$ref: string;
default: string;
};
};
};
metadata: {
type: string;
params: {
type: string;
items: {
type: string;
enum: string[];
};
minItems: number;
uniqueItems: boolean;
additionalItems: boolean;
};
additionalProperties: boolean;
};
resize: {
type: string;
properties: {
width: {
type: string;
minimum: number;
maximum: number;
};
height: {
type: string;
minimum: number;
maximum: number;
};
fit: {
type: string;
enum: string[];
default: string;
};
align: {
$ref: string;
default: string;
};
};
additionalProperties: boolean;
anyOf: {
required: string[];
}[];
};
crop: {
type: string;
properties: {
dim: {
type: string;
additionalItems: boolean;
minItems: number;
items: {
type: string;
minimum: number;
maximum: number;
}[];
};
};
required: string[];
};
rotate: {
type: string;
properties: {
deg: {
oneOf: ({
type: string;
enum: string[];
minimum?: undefined;
maximum?: undefined;
} | {
type: string;
minimum: number;
maximum: number;
enum?: undefined;
})[];
};
exif: {
type: string;
};
background: {
$ref: string;
default: string;
};
};
additionalProperties: boolean;
};
detect_faces: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
maxsize: {
type: string;
minimum: number;
maximum: number;
default: number;
};
minsize: {
type: string;
minimum: number;
maximum: number;
default: number;
};
export: {
type: string;
};
color: {
$ref: string;
default: string;
};
};
additionalProperties: boolean;
})[];
};
crop_faces: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
faces: {
default: number;
$ref: string;
};
width: {
type: string;
minimum: number;
maximum: number;
};
height: {
type: string;
minimum: number;
maximum: number;
};
maxsize: {
type: string;
minimum: number;
maximum: number;
default: number;
};
minsize: {
type: string;
minimum: number;
maximum: number;
default: number;
};
buffer: {
type: string;
minimum: number;
maximum: number;
};
mode: {
type: string;
enum: string[];
default: string;
};
};
additionalProperties: boolean;
})[];
};
pixelate_faces: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
faces: {
$ref: string;
default: string;
};
maxsize: {
type: string;
minimum: number;
maximum: number;
default: number;
};
minsize: {
type: string;
minimum: number;
maximum: number;
default: number;
};
buffer: {
type: string;
minimum: number;
maximum: number;
};
amount: {
type: string;
minimum: number;
maximum: number;
default: number;
};
blur: {
type: string;
minimum: number;
maximum: number;
default: number;
};
type: {
type: string;
enum: string[];
default: string;
};
};
additionalProperties: boolean;
})[];
};
blur_faces: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
faces: {
$ref: string;
default: string;
};
maxsize: {
type: string;
minimum: number;
maximum: number;
default: number;
};
minsize: {
type: string;
minimum: number;
maximum: number;
default: number;
};
buffer: {
type: string;
minimum: number;
maximum: number;
};
amount: {
type: string;
minimum: number;
maximum: number;
default: number;
};
blur: {
type: string;
minimum: number;
maximum: number;
default: number;
};
type: {
type: string;
enum: string[];
default: string;
};
};
additionalProperties: boolean;
})[];
};
rounded_corners: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
radius: {
oneOf: ({
type: string;
minimum: number;
maximum: number;
enum?: undefined;
} | {
type: string;
enum: string[];
minimum?: undefined;
maximum?: undefined;
})[];
};
blur: {
type: string;
minimum: number;
maximum: number;
default: number;
};
background: {
$ref: string;
};
};
additionalProperties: boolean;
})[];
};
vignette: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
amount: {
type: string;
minimum: number;
maximum: number;
default: number;
};
blurmode: {
type: string;
enum: string[];
default: string;
};
background: {
$ref: string;
};
};
additionalProperties: boolean;
})[];
};
polaroid: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
/**
* Overwrite domain (test purposes)
*
* @private
* @type {string}
* @memberof Filelink
*/
rotate: {
type: string;
minimum: number;
maximum: number;
};
color: {
$ref: string;
default: string;
};
background: {
$ref: string;
};
};
additionalProperties: boolean;
})[];
};
torn_edges: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
spread: {
type: string;
additionalItems: boolean;
minItems: number;
items: {
type: string;
minimum: number;
maximum: number;
default: number;
}[];
};
background: {
$ref: string;
};
};
additionalProperties: boolean;
})[];
};
shadow: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
blur: {
type: string;
minimum: number;
maximum: number;
default: number;
};
opacity: {
type: string;
minimum: number;
maximum: number;
default: number;
};
vector: {
type: string;
additionalItems: boolean;
minItems: number;
items: {
type: string;
minimum: number;
maximum: number;
default: number;
}[];
};
color: {
$ref: string;
};
background: {
$ref: string;
};
};
additionalProperties: boolean;
})[];
};
circle: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
background: {
$ref: string;
};
};
additionalProperties: boolean;
})[];
};
border: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
color: {
$ref: string;
};
background: {
$ref: string;
};
width: {
type: string;
minimum: number;
maximum: number;
};
};
additionalProperties: boolean;
})[];
};
sharpen: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
amount: {
type: string;
minimum: number;
maximum: number;
default: number;
};
};
additionalProperties: boolean;
})[];
};
blur: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
amount: {
type: string;
minimum: number;
maximum: number;
default: number;
};
};
additionalProperties: boolean;
})[];
};
blackwhite: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
threshold: {
type: string;
minimum: number;
maximum: number;
default: number;
};
};
additionalProperties: boolean;
})[];
};
sepia: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
tone: {
type: string;
minimum: number;
maximum: number;
default: number;
};
};
additionalProperties: boolean;
})[];
};
pixelate: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
amount: {
type: string;
minimum: number;
maximum: number;
default: number;
};
};
additionalProperties: boolean;
})[];
};
oil_paint: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
amount: {
type: string;
minimum: number;
maximum: number;
default: number;
};
};
additionalProperties: boolean;
})[];
};
modulate: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
brightness: {
type: string;
minimum: number;
maximum: number;
default: number;
};
saturation: {
type: string;
minimum: number;
maximum: number;
default: number;
};
hue: {
type: string;
minimum: number;
maximum: number;
default: number;
};
};
additionalProperties: boolean;
})[];
};
ascii: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
foreground: {
$ref: string;
default: string;
};
/**
* Adds Progressive JPEG transformation
*
* @see https://www.filestack.com/docs/api/processing/#progressive-jpeg
* @returns this
* @memberof Filelink
*/
background: {
$ref: string;
default: string;
};
colored: {
type: string;
default: boolean;
};
size: {
type: string;
minimum: number; /**
* Adds imagesize transformation
*
* @see https://www.filestack.com/docs/api/processing/#smart-crop
* @returns this
* @memberof Filelink
*/
maximum: number;
default: number;
};
reverse: {
type: string;
default: boolean;
};
};
additionalProperties: boolean;
})[];
};
collage: {
type: string;
properties: {
files: {
type: string;
minItems: number;
items: {
type: string;
}[];
};
margin: {
type: string;
minimum: number;
maximum: number;
default: number;
};
width: {
type: string;
minimum: number;
maximum: number;
};
height: {
type: string;
minimum: number;
maximum: number;
};
color: {
$ref: string;
default: string;
};
fit: {
type: string;
enum: string[];
};
autorotate: {
type: string;
default: boolean;
};
};
required: string[];
additionalProperties: boolean;
};
urlscreenshot: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
agent: {
type: string;
enum: string[];
default: string;
};
width: {
type: string;
minimum: number;
maximum: number;
default: number;
};
height: {
type: string;
minimum: number;
maximum: number;
default: number;
};
mode: {
type: string;
enum: string[];
default: string;
};
delay: {
type: string;
minimum: number;
maximum: number;
default: number;
};
orientation: {
type: string;
enum: string[];
default: string;
};
device: {
type: string;
default: string;
};
};
additionalProperties: boolean;
})[];
};
upscale: {
oneOf: ({
type: string;
properties?: undefined;
additionalProperties?: undefined;
} | {
type: string;
properties: {
noise: {
type: string;
enum: string[];
default: string;
};
upscale: {
type: string;
default: boolean;
};
style: {
type: string;
enum: string[];
default: string;
};
};
additionalProperties: boolean;
})[];
};
output: {
type: string;
additionalProperties: boolean;
properties: {
format: {
type: string;
enum: string[];
};
page: {
type: string;
minimum: number;
maximum: number;
};
density: {
type: string;
minimum: number;
maximum: number;
};
compress: {
type: string;
};
quality: {
oneOf: ({
type: string;
enum: string[];
minimum?: undefined;
maximum?: undefined;
default?: undefined;
} | {
type: string;
minimum: number;
maximum: number;
default: number;
enum?: undefined;
})[];
};
secure: {
type: string;
default: boolean;
};
docinfo: {
type: string;
default: boolean;
};
strip: {
type: string;
default: boolean;
};
colorspace: {
type: string;
enum: string[];
default: string;
};
background: {
$ref: string;
};
pageformat: {
type: string;
enum: string[];
};
pageorientation: {
type: string;
enum: string[];
};
};
};
pjpg: {
oneOf: ({
type: string;
additionalProperties?: undefined;
properties?: undefined;
} | {
type: string;
additionalProperties: boolean;
properties: {
quality: {
type: string;
minimum: number;
maximum: number;
};
metadata: {
type: string;
default: boolean;
};
};
})[];
};
quality: {
type: string;
additionalProperties: boolean;
properties: {
value: {
type: string;
minimum: number;
maximum: number;
};
};
};
cache: {
oneOf: ({
type: string;
properties?: undefined;
} | {
type: string;
properties: {
expiry: {
type: string;
};
};
})[];
};
video_convert: {
type: string;
additionalProperties: boolean;
properties: {
width: {
type: string;
minimum: number;
maximum: number;
};
height: {
type: string;
minimum: number;
maximum: number;
};
preset: {
type: string;
};
force: {
type: string;
};
title: {
type: string;
};
extname: {
type: string;
};
upscale: {
type: string;
};
aspect_mode: {
type: string;
enum: string[];
default: string;
};
audio_sample_rate: {
type: string;
minimum: number;
maximum: number;
};
two_pass: {
type: string;
};
video_bitrate: {
type: string;
minimum: number;
maximum: number;
};
fps: {
type: string;
minimum: number;
maximum: number;
};
keyframe_interval: {
type: string;
minimum: number;
maximum: number;
};
audio_bitrate: {
type: string;
minimum: number;
maximum: number;
};
audio_codec: {
type: string;
};
audio_channels: {
type: string;
minimum: number;
maximum: number; /**
* Adds circle transformation
*
* @see https://www.filestack.com/docs/api/processing/#circle
* @param {(CircleParams | boolean)} params
* @returns this
* @memberof Filelink
*/
};
clip_length: {
type: string;
pattern: string;
};
clip_offset: {
type: string;
pattern: string;
};
watermark_url: {
type: string;
};
watermark_top: {
type: string;
minimum: number;
maximum: number;
};
watermark_right: {
type: string;
minimum: number;
maximum: number;
};
watermark_bottom: {
type: string;
minimum: number;
maximum: number;
};
watermark_left: {
type: string;
minimum: number;
maximum: number;
};
frame_count: {
type: string;
minimum: number;
maximum: number; /**
* Adds blur transformation
*
* @see https://www.filestack.com/docs/api/processing/#blur
* @param {(BlurParams | boolean)} params
* @returns this
* @memberof Filelink
*/
default: number;
};
filename: {
type: string;
};
location: {
$ref: string;
};
path: {
type: string;
};
container: {
type: string;
};
access: {
type: string;
enum: string[];
default: string;
};
};
};
store: {
oneOf: ({
type: string;
additionalProperties?: undefined;
properties?: undefined;
} | {
type: string;
additionalProperties: boolean;
properties: {
filename: {
type: string;
};
location: {
$ref: string;
};
path: {
type: string;
};
container: {
type: string;
};
region: {
$ref: string;
};
access: {
type: string;
enum: string[];
default: string;
};
base64decode: {
type: string;
};
workflows: {
$ref: string;
};
};
})[];
};
watermark: {
type: string;
properties: {
file: {
type: string;
};
size: {
type: string;
minimum: number;
maximum: number;
};
position: {
$ref: string;
};
};
required: string[];
additionalProperties: boolean;
};
partial_blur: {
type: string;
properties: {
objects: {
$ref: string;
};
amount: {
type: string;
minimum: number;
maximum: number;
};
blur: {
type: string;
minimum: number;
maximum: number;
};
type: {
type: string;
enum: string[];
};
};
required: string[];
};
partial_pixelate: {
type: string;
properties: {
objects: {
$ref: string;
};
amount: {
type: string;
minimum: number;
maximum: number;
};
blur: {
type: string;
minimum: number;
maximum: number;
};
type: {
type: string;
enum: string[];
};
};
required: string[];
};
security: {
type: string;
additionalProperties: boolean;
properties: {
policy: {
type: string;
};
signature: {
type: string;
};
};
required: string[]; /**
* Adds upscale transformation
*
* @see https://www.filestack.com/docs/api/processing/#upscale
* @param {(UpscaleParams | boolean)} params
* @returns this
* @memberof Filelink
*/
};
pdfinfo: {
oneOf: ({
type: string;
properties?: undefined;
} | {
type: string;
properties: {
colorinfo: {
type: string;
};
};
})[];
};
pdfconvert: {
type: string;
additionalProperties: boolean;
properties: {
pageorientation: {
type: string;
enum: string[];
};
pageformat: {
$ref: string;
};
pages: {
$ref: string;
};
};
anyOf: {
required: string[];
}[];
};
fallback: {
type: string;
additionalProperties: boolean;
properties: {
handle: {
type: string;
};
cache: {
type: string;
minimum: number;
maximum: number;
};
};
required: string[];
};
zip: {
type: string;
};
minify_css: {
type: string;
additionalProperties: boolean;
properties: {
gzip: {
type: string;
};
level: {
type: string;
enum: number[];
};
};
};
minify_js: {
type: string;
additionalProperties: boolean;
properties: {
gzip: {
type: string;
};
use_babel_polyfill: {
type: string;
};
keep_fn_name: {
type: string;
};
keep_class_name: {
type: string;
};
mangle: {
type: string;
};
merge_vars: {
type: string;
};
remove_console: {
type: string;
};
remove_undefined: {
type: string;
};
targets: {
type: string;
};
};
};
};
};
/**
* Returns transformations in JSON format
*
* @returns
* @memberof Filelink
*/
getTransformations(): any[];
/**
* Returns transform url
*
* @returns
* @memberof Filelink
*/
toString(): string;
/**
* Add task and validate
*
* @param {string} name
* @param {*} [params]
* @returns
* @memberof Filelink
*/
addTask(name: string, params?: any): this;
/**
* Returns all tasks added for transformation
*
* @memberof Filelink
*/
getTasks(): any[];
/**
* Cleanup transformations on filelink
*
* @returns
* @memberof Filelink
*/
reset(): this;
/**
* Transformations part
*/
/**
* Add autoimage transformation
*
* @see https://www.filestack.com/docs/api/processing/#auto-image-conversion
* @returns this
* @memberof Filelink
*/
autoImage(): this;
/**
* Adds flip transformation
*
* @see https://www.filestack.com/docs/api/processing/#flip
* @returns this
* @memberof Filelink
*/
flip(): this;
/**
* Adds flop transformation
*
* @see https://www.filestack.com/docs/api/processing/#flop
* @returns this
* @memberof Filelink
*/
flop(): this;
/**
* Adds imagesize transformation
*
* @see https://www.filestack.com/docs/api/processing/#image-size
* @returns this
* @memberof Filelink
*/
imagesize(): this;
/**
* Adds noMetadata transformation
*
* @see https://www.filestack.com/docs/api/processing/#strip-metadata
* @returns this
* @memberof Filelink
*/
noMetadata(): this;
/**
* Adds Progressive JPEG transformation
*
* @see https://www.filestack.com/docs/api/processing/#progressive-jpeg
* @returns this
* @memberof Filelink
*/
pjpg(params: ProgressiveJpgParams): this;
/**
* Adds imagesize transformation
*
* @see https://www.filestack.com/docs/api/processing/#smart-crop
* @returns this
* @memberof Filelink
*/
smartCrop(params: SmartCropParams): this;
/**
* Adds watermart transformation
*
* @see https://www.filestack.com/docs/api/processing/#watermark
* @returns this
* @memberof Filelink
*/
watermark(params: WatermarkParams): this;
/**
* Adds enhance transformation
*
* @see https://www.filestack.com/docs/api/processing/#enhance
* @returns this
* @memberof Filelink
*/
enhance(params?: EnhanceParams): this;
/**
* Add security to link
*
* @see https://www.filestack.com/docs/api/processing/#redeye
* @returns
* @memberof Filelink
*/
redeye(): this;
/**
* Add monochrome transformation
*
* @see https://www.filestack.com/docs/api/processing/#monochrome
* @returns this
* @memberof Filelink
*/
monochrome(): this;
/**
* Add compress transformation
*
* @see https://www.filestack.com/docs/api/processing/#compress
* @returns this
* @memberof Filelink
*/
compress(params?: CompressParams): this;
/**
* Adds negative transformation
*
* @see https://www.filestack.com/docs/api/processing/#negative
* @returns this
* @memberof Filelink
*/
negative(): this;
/**
* Adds tags transformation
*
* @see https://www.filestack.com/docs/api/processing/#tags
* @returns this
* @memberof Filelink
*/
tags(): this;
/**
* Adds sfw transformation
*
* @see https://www.filestack.com/docs/api/processing/#sfw
* @returns this
* @memberof Filelink
*/
sfw(): this;
/**
* Add animate transformation
*
* @see https://www.filestack.com/docs/api/processing/#animate-images-to-gif
* @param params
* @returns this
* @memberof Filelink
*/
animate(params: AnimationParams): this;
/**
* Adds store transformation
*
* @see https://www.filestack.com/docs/api/processing/#store
* @param {(StoreParams | boolean)} params
* @returns this
* @memberof Filelink
*/
store(params?: StoreParams | boolean): this;
/**
* Adds cache transformation
*
* @see https://www.filestack.com/docs/api/processing/#cache
* @param {(CacheParams | boolean)} params
* @returns this
* @memberof Filelink
*/
cache(params: CacheParams | boolean): this;
/**
* Adds resize transformation
*
* @see https://www.filestack.com/docs/api/processing/#resize
* @param {ResizeParams} params
* @returns this
* @memberof Filelink
*/
resize(params: ResizeParams): this;
/**
* Adds crop transformation
*
* @see https://www.filestack.com/docs/api/processing/#crop
* @param {CropParams} params
* @returns this
* @memberof Filelink
*/
crop(params: CropParams): this;
/**
* Adds rotate transformation
*
* @see https://www.filestack.com/docs/api/processing/#rotate
* @param {RotateParams} params
* @returns this
* @memberof Filelink
*/
rotate(params: RotateParams): this;
/**
* Adds detect_faces transformation
*
* @see https://www.filestack.com/docs/api/processing/#facial-detection
* @param {(DetectFacesParams | boolean)} params
* @returns this
* @memberof Filelink
*/
detectFaces(params?: DetectFacesParams | boolean): this;
/**
* Adds crop faces transformation
*
* @see https://www.filestack.com/docs/api/processing/#crop-faces
* @param {CropFacesParams} params
* @returns this
* @memberof Filelink
*/
cropFaces(params: CropFacesParams): this;
/**
* Adds pixelate faces transformation
*
* @see https://www.filestack.com/docs/api/processing/#pixelate-faces
* @param {PixelateFacesParams} params
* @returns this
* @memberof Filelink
*/
pixelateFaces(params: PixelateFacesParams): this;
/**
* Adds blur faces transformation
*
* @see https://www.filestack.com/docs/api/processing/#blur-faces
* @param {BlurFacesParams} params
* @returns this
* @memberof Filelink
*/
blurFaces(params: BlurFacesParams): this;
/**
* Adds rounded corners transformation
*
* @see https://www.filestack.com/docs/api/processing/#rounded-corners
* @param {(RoundedCornersParams | boolean)} params
* @returns this
* @memberof Filelink
*/
roundedCorners(params?: RoundedCornersParams | boolean): this;
/**
* Adds polaroid transformation
*
* @see https://www.filestack.com/docs/api/processing/#polaroid
* @param {(PolaroidParams | boolean)} params
* @returns this
* @memberof Filelink
*/
polaroid(params?: PolaroidParams | boolean): this;
/**
* Adds vignette transformation
*
* @see https://www.filestack.com/docs/api/processing/#vignette
* @param {(VignetteParams | boolean)} params
* @returns this
* @memberof Filelink
*/
vignette(params?: VignetteParams | boolean): this;
/**
* Adds torn edges transformation
*
* @see https://www.filestack.com/docs/api/processing/#torn-edges
* @param {(TornEdgesParams | boolean)} params
* @returns this
* @memberof Filelink
*/
tornEdges(params?: TornEdgesParams | boolean): this;
/**
* Adds shadow transformation
*
* @see https://www.filestack.com/docs/api/processing/#shadow
* @param {(ShadowParams | boolean)} params
* @returns this
* @memberof Filelink
*/
shadow(params?: ShadowParams | boolean): this;
/**
* Adds circle transformation
*
* @see https://www.filestack.com/docs/api/processing/#circle
* @param {(CircleParams | boolean)} params
* @returns this
* @memberof Filelink
*/
circle(params?: CircleParams | boolean): this;
/**
* Adds border transformation
*
* @see https://www.filestack.com/docs/api/processing/#border
* @param {(BorderParams | boolean)} params
* @returns this
* @memberof Filelink
*/
border(params?: BorderParams | boolean): this;
/**
* Adds sharpen transformation
*
* @see https://www.filestack.com/docs/api/processing/#sharpen
* @param {(SharpenParams | boolean)} params
* @returns this
* @memberof Filelink
*/
sharpen(params?: SharpenParams | boolean): this;
/**
* Adds blur transformation
*
* @see https://www.filestack.com/docs/api/processing/#blur
* @param {(BlurParams | boolean)} params
* @returns this
* @memberof Filelink
*/
blur(params?: BlurParams | boolean): this;
/**
* Adds blackwhite transformation
*
* @see https://www.filestack.com/docs/api/processing/#blackwhite
* @param {(BlackwhiteParams | boolean)} params
* @returns this
* @memberof Filelink
*/
blackwhite(params?: BlackwhiteParams | boolean): this;
/**
* Adds sepia transformation
*
* @see https://www.filestack.com/docs/api/processing/#sepia
* @param {(SepiaParams | boolean)} params
* @returns this
* @memberof Filelink
*/
sepia(params?: SepiaParams | boolean): this;
/**
* Adds pixelate transformation
*
* @see https://www.filestack.com/docs/api/processing/#pixelate
* @param {(PixelateParams | boolean)} params
* @returns this
* @memberof Filelink
*/
pixelate(params?: PixelateParams | boolean): this;
/**
* Adds oilpaint transformation
*
* @see https://www.filestack.com/docs/api/processing/#oil-paint
* @param {(OilPaintParams | boolean)} params
* @returns this
* @memberof Filelink
*/
oilPaint(params?: OilPaintParams | boolean): this;
/**
* Adds modulate transformation
*
* @see https://www.filestack.com/docs/api/processing/#modulate
* @param {(ModulateParams | boolean)} params
* @returns this
* @memberof Filelink
*/
modulate(params?: ModulateParams | boolean): this;
/**
* Adds partial pixelate transformation
*
* @see https://www.filestack.com/docs/api/processing/#partial-pixelate
* @param {PartialPixelateParams} params
* @returns this
* @memberof Filelink
*/
partialPixelate(params: PartialPixelateParams): this;
/**
* Adds partial blur transformation
*
* @see https://www.filestack.com/docs/api/processing/#partial-blur
* @param {PartialBlurParams} params
* @returns this
* @memberof Filelink
*/
partialBlur(params: PartialBlurParams): this;
/**
* Adds collage transformation
*
* @see https://www.filestack.com/docs/api/processing/#collage
* @param {CollageParams} params
* @returns this
* @memberof Filelink
*/
collage(params: CollageParams): this;
/**
* Adds upscale transformation
*
* @see https://www.filestack.com/docs/api/processing/#upscale
* @param {(UpscaleParams | boolean)} params
* @returns this
* @memberof Filelink
*/
upscale(params?: UpscaleParams | boolean): this;
/**
* Adds ascii transformation
*
* @see https://www.filestack.com/docs/api/processing/#ascii
* @param {(AsciiParams | boolean)} params
* @returns this
* @memberof Filelink
*/
ascii(params?: AsciiParams | boolean): this;
/**
* Adds quality transformation
*
* @see https://www.filestack.com/docs/api/processing/#quality
* @param {QualityParams} params
* @returns this
* @memberof Filelink
*/
quality(params: QualityParams): this;
/**
* Adds security transformation
*
* @see https://www.filestack.com/docs/api/processing/#security
* @param {SecurityParams} params
* @returns this
* @memberof Filelink
*/
security(params: SecurityParams): this;
/**
* Adds output transformation
*
* @see https://www.filestack.com/docs/api/processing/#output
* @param {OutputParams} params
* @returns this
* @memberof Filelink
*/
output(params: OutputParams): this;
/**
* Adds video convert transformation
*
* @see https://www.filestack.com/docs/api/processing/#video-convert
* @param {VideoConvertParams} params
* @returns this
* @memberof Filelink
*/
videoConvert(params: VideoConvertParams): this;
/**
* Adds URLScreenshot transformation
*
* @see https://www.filestack.com/docs/api/processing/#urlscreenshot
* @param {(URLScreenshotParams | boolean)} params
* @returns this
* @memberof Filelink
*/
URLScreenshot(params?: URLScreenshotParams | boolean): this;
/**
* Adds pdfinfo transformation
*
* @see https://www.filestack.com/docs/api/processing/#pdfinfo
* @param {(PdfInfoParams | boolean)} params
* @returns this
* @memberof Filelink
*/
PDFInfo(params?: PdfInfoParams | boolean): this;
/**
* Adds pdfconvert transformation
*
* @see https://www.filestack.com/docs/api/processing/#pdfconvert
* @param {(PdfConvertParams | boolean)} params
* @returns this
* @memberof Filelink
*/
PDFConvert(params?: PdfConvertParams | boolean): this;
/**
* Adds fallback transformation
*
* @see https://www.filestack.com/docs/api/processing/#fallback
* @param {(FallbackParams)} params
* @returns this
* @memberof Filelink
*/
fallback(params: FallbackParams): this;
/**
* Add zip transformation which create a zip package on files
* used on actual context
*
* @see https://www.filestack.com/docs/api/processing/#zip
* @returns this
* @memberof Filelink
*/
zip(): this;
/**
* Add task which minify a css file
*
* @returns this
* @memberof Filelink
*/
minifyCss(params: MinifyCssParams): this;
/**
* Add task which minify a javascript file.
* For better handling of 'targets' param, use with b64 flag enabled.
*
* @returns this
* @memberof Filelink
*/
minifyJs(params: MinifyJsParams): this;
/**
* Checks if source is external
*
* @private
* @returns {boolean}
* @memberof Filelink
*/
private isSourceExternal;
/**
* Validate every task against schema
*
* @private
* @param {object[]} transformations - object which contain all transformations
* @returns {void}
* @memberof Filelink
*/
private validateTasks;
/**
* Returns correct cdn url with cname support
*
* @private
* @returns {string}
* @memberof Filelink
*/
private getCdnHost;
/**
* Returns applied transformations as string
*
* @private
* @returns {string}
* @memberof Filelink
*/
private generateTransformString;
/**
* Flatten transformation option to string
*
* @private
* @example {resize:{width: 100,height: 200}} => resize=width:100,height:200
* @param key - option key
* @param values - option params
*/
private optionToString;
/**
* Escape params values
*
* @private
* @param {string} value
* @returns {string}
* @memberof Filelink
*/
private escapeValue;
/**
* Converts nested arrays to string
*
* @private
* @example [1,2, [2,3]] => "[1,2, [2,3]]"
* @param arr - any array
*/
private arrayToString;
/**
* Converts array of objects to object
*
* @private
* @example [{name: 'resize', params: {height: 125}}] => {resize: {height: 125}}
* @param arr - any array
*/
private arrayToObject;
}