UNPKG

filestack-js

Version:

Official JavaScript library for Filestack

436 lines (435 loc) 9.66 kB
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;