diff --git a/gm/gm-tests.ts b/gm/gm-tests.ts new file mode 100644 index 0000000000..e3172dfc6a --- /dev/null +++ b/gm/gm-tests.ts @@ -0,0 +1,350 @@ +/// +/// + +import gm = require('gm'); +import stream = require('stream'); + +var src: string; +var matrix: string; +var enable: boolean; +var ltr: boolean; +var password: string; +var bits: number; +var intensity: number; +var r: number; +var g: number; +var b: number; +var opacity: number; +var x: number; +var y: number; +var radius: number; +var sigma: number; +var width: number; +var height: number; +var color: string; +var channel: string; +var type: string; +var factor: number; +var numColors: number; +var operator: string; +var multiplier: number; +var kernel: string; +var usePercent: boolean; +var time: number; +var server: string; +var method: string; +var percent: number; +var encoding: string; +var options: string; +var file: string; +var distance: number; +var geometry: string; +var direction: string; +var name: string; +var offset: number; +var blackPoint: number; +var gamma: number; +var whitePoint: number; +var limit: string; +var format: string; +var iterations: number; +var count: number; +var b: number; +var s: number; +var h: number; +var dest: string; +var images: string[]; +var angle: number; +var NxN: string; +var size: number; +var command: string; +var index: number; +var threshold: number; +var attribute: string; +var attrValue: string; +var format: string; +var font: string; +var quality: number; +var align: string; +var depth: number; +var readStream: stream.PassThrough; + +gm(src) + .adjoin() + .affine(matrix) + .antialias(enable) + .append(src) + .append(src, ltr) + .authenticate(password) + .autoOrient() + .backdrop() + .bitdepth(bits) + .blackThreshold(intensity) + .blackThreshold(r, g, b) + .blackThreshold(r, g, b, opacity) + .bluePrimary(x, y) + .blur(radius) + .blur(radius, sigma) + .border(width, height) + .borderColor(color) + .box(color) + .channel(channel) + .charcoal(factor) + .chop(width, height) + .chop(width, height, x, y) + .clip() + .coalesce() + .colorize(r, g, b) + .colorMap(type) + .colors(numColors) + .colorspace(type) + .compose(operator) + .compress(type) + .contrast(multiplier) + .convolve(kernel) + .createDirectories() + .crop(width, height) + .crop(width, height, x, y) + .crop(width, height, x, y, usePercent) + .cycle(factor) + .deconstruct() + .define() + .delay(time) + .density(width, height) + .despeckle() + .displace(x, y) + .display(server) + .dispose(method) + .dissolve(percent) + .dither() + .dither(enable) + .edge() + .edge(radius) + .emboss() + .emboss(radius) + .encoding(encoding) + .endian(type) + .enhance() + .equalize() + .extent(width, height) + .extent(width, height, options) + .file(file) + .filter(type) + .flatten() + .flip() + .flop() + .foreground(color) + .frame(width, height, width, height) + .fuzz(distance) + .fuzz(distance, usePercent) + .gamma(r, b, g) + .gaussian(radius) + .gaussian(radius, sigma) + .geometry(width, height) + .geometry(width, height, options) + .geometry(geometry) + .greenPrimary(x, y) + .gravity(direction) + .highlightColor(color) + .highlightStyle(type) + .iconGeometry(geometry) + .implode() + .implode(factor) + .intent(type) + .interlace(type) + .label(name) + .lat(width, height, offset) + .lat(width, height, offset, usePercent) + .level(blackPoint, gamma, whitePoint) + .level(blackPoint, gamma, whitePoint, usePercent) + .limit(type, limit) + .list(type) + .log(format) + .loop(iterations) + .lower(width, height) + .magnify(factor) + .map(file) + .mask(file) + .matte() + .matteColor(color) + .maximumError(count) + .median() + .median(radius) + .minify(factor) + .mode(type) + .modulate(b, s, h) + .monitor() + .monochrome() + .morph(src, dest) + .morph(src, dest, (err, stdout, stderr, cmd) => { + }) + .morph(images, dest) + .morph(images, dest, (err, stdout, stderr, cmd) => { + }) + .mosaic() + .motionBlur(radius) + .motionBlur(radius, sigma) + .motionBlur(radius, sigma, angle) + .name() + .negative() + .noise(type) + .noise(radius) + .noop() + .normalize() + .opaque(color) + .operator(channel, operator, factor) + .operator(channel, operator, factor, usePercent) + .orderedDither(channel, NxN) + .outputDirectory(dest) + .page(width, height) + .page(width, height, options) + .pause(time) + .pen(color) + .ping() + .pointSize(size) + .noProfile() + .preview(type) + .paint(radius) + .process(command) + .profile(file) + .progress() + .randomThreshold(channel, NxN) + .quality(factor) + .raise(width, height) + .recolor(matrix) + .redPrimary(x, y) + .region(width, height) + .region(width, height, x, y) + .remote() + .render() + .repage('+') + .repage(width, height, x, y) + .repage(width, height, x, y, options) + .sample(geometry) + .samplingFactor(factor, factor) + .rawSize(width, height) + .rawSize(width, height, offset) + .resample(width, height) + .resize(width, height) + .resize(width, height, options) + .roll(x, y) + .rotate(color, angle) + .scene(index) + .scenes(index, index) + .scale(width, height) + .screen() + .segment(threshold, threshold) + .sepia() + .set(attribute, attrValue) + .setFormat(format) + .shade(angle, distance) + .shadow(radius) + .shadow(radius, sigma) + .sharedMemory() + .shave(width, height) + .shave(width, height, usePercent) + .sharpen(radius) + .sharpen(radius, sigma) + .shear(angle, angle) + .silent() + .snaps(count) + .solarize(threshold) + .spread(distance) + .stegano(offset) + .stereo() + .strip() + .swirl(angle) + .textFont(font) + .threshold(threshold) + .threshold(threshold, usePercent) + .thumb(width, height, dest, (err, stdout, stderr, cmd) => { + }) + .thumb(width, height, dest, quality, (err, stdout, stderr, cmd) => { + }) + .thumb(width, height, dest, quality, align, (err, stdout, stderr, cmd) => { + }) + .tile(file) + .title(name) + .transform(color) + .transparent(color) + .treeDepth(depth) + .trim() + .type(type) + .update(time) + .units(type) + .unsharp(radius) + .unsharp(radius, sigma) + .unsharp(radius, sigma, factor) + .unsharp(radius, sigma, factor, threshold) + .usePixmap() + .view() + .virtualPixel(method) + .visual(type) + .watermark(b, s) + .wave(factor, distance) + .whitePoint(x, y) + .whiteThreshold(intensity) + .whiteThreshold(r, g, b) + .whiteThreshold(r, g, b, opacity) + .window(name) + .windowGroup() + .color((err, color) => { + }) + .depth((err, bitdepth) => { + }) + .filesize((err, size) => { + }) + .format((err, format) => { + }) + .identify((err, info) => { + }) + .res((err, resolution) => { + }) + .size((err, size) => { + }) + .orientation((err, orient) => { + }) + .draw(options) + .drawArc(x, y, x, y, radius, radius) + .drawBezier(x, y, x, y) + .drawBezier(x, y, x, y, x, y) + .drawBezier(x, y, x, y, x, y, x, y) + .drawCircle(x, y, x, y) + .drawEllipse(x, y, radius, radius, radius, radius) + .drawLine(x, y, x, y) + .drawPoint(x, y) + .drawPolygon(x, y, x, y, x, y) + .drawPolygon(x, y, x, y, x, y, x, y) + .drawPolyline(x, y, x, y, x, y) + .drawPolyline(x, y, x, y, x, y, x, y) + .drawRectangle(x, y, x, y) + .drawRectangle(x, y, x, y, radius) + .drawRectangle(x, y, x, y, radius, radius) + .drawText(x, y, name, direction) + .fill(color) + .font(font) + .font(font, size) + .fontSize(size) + .stroke(color) + .stroke(color, width) + .setDraw(type, x, y, method) + .write(dest, (err, stdout, stderr, cmd) => { + }); + +gm.compare(file, file, (err, isEqual, equality, raw) => { +}); + +readStream = gm(src).stream(); +readStream = gm(src).stream(format); +readStream = gm(src).stream(format, (err, stdout, stderr, cmd) => { +}); + +gm(src).toBuffer((err, buffer) => { +}); +gm(src).toBuffer(format, (err, buffer) => { +}); + +var imageMagick = gm.subClass({ imageMagick: true }); +var readStream = imageMagick(src) + .adjoin() + .stream(); diff --git a/gm/gm.d.ts b/gm/gm.d.ts new file mode 100644 index 0000000000..2373300fee --- /dev/null +++ b/gm/gm.d.ts @@ -0,0 +1,623 @@ +// Type definitions for gm 1.17.0 +// Project: https://github.com/aheckmann/gm +// Definitions by: Joel Spadin +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module "gm" { + import stream = require('stream'); + + function m(image: string): m.State; + + module m { + export interface ClassOptions { + imageMagick?: boolean; + } + + export interface CompareCallback { + (err: Error, isEqual: boolean, equality: number, raw: number): any; + } + + export interface GetterCallback { + (err: Error, value: T): any; + } + + export interface WriteCallback { + (err: Error, stdout: string, stderr: string, cmd: string): any; + } + + export interface ChannelInfo { + Red: T; + Green: T; + Blue: T; + } + + export interface CompareOptions { + file?: string; + highlightColor?: string; + highlightStyle?: string; + tolerance?: number; + } + + export interface ColorStatistics { + Minimum: string; + Maximum: string; + Mean: string; + 'Standard Deviation': string; + } + + export interface Dimensions { + width: number; + height: number; + } + + export interface ImageInfo { + 'Background Color': string; + 'Border Color': string; + 'Channel Depths': ChannelInfo; + 'Channel Statistics': ChannelInfo; + Class: string; + color: number; + Compose: string; + Compression: string; + depth: number; + Depth: string; + Dispose: string; + Filesize: string; + format: string; + Format: string; + Geometry: string; + Interlace: string; + Iterations: string; + 'JPEG-Quality'?: string; + 'JPEG-Colorspace'?: string; + 'JPEG-Colorspace-Name'?: string; + 'JPEG-Sampling-factors'?: string; + 'Matte Color': string; + Orientation: string; + 'Page geometry': string; + path: string; + + 'Profile-color'?: string; + 'Profile-iptc'?: { + [key: string]: string; + }; + 'Profile-EXIF'?: { + [key: string]: string; + }; + 'Profile-XMP'?: string; + Resolution?: string; + size: Dimensions; + Signature: string; + Software: string; + Tainted: string; + Type: string; + } + + export interface State { + // Image Operations + adjoin(): State; + affine(matrix: string): State; + antialias(enable: boolean): State; + append(image: string, ltr?: boolean): State; + authenticate(password: string): State; + autoOrient(): State; + backdrop(): State; + bitdepth(bits: number): State; + blackThreshold(intensity: number): State; + blackThreshold(red: number, green: number, blue: number, opacity?: number): State; + bluePrimary(x: number, y: number): State; + blur(radius: number, sigma?: number): State; + border(width: number, height: number): State; + borderColor(color: string): State; + box(color: string): State; + channel(type: 'Red'): State; + channel(type: 'Green'): State; + channel(type: 'Blue'): State; + channel(type: 'Opacity'): State; + channel(type: 'Matte'): State; + channel(type: 'Cyan'): State; + channel(type: 'Magenta'): State; + channel(type: 'Yellow'): State; + channel(type: 'Black'): State; + channel(type: 'Gray'): State; + channel(type: string): State; + charcoal(factor: number): State; + chop(width: number, height: number, x?: number, y?: number): State; + clip(): State; + coalesce(): State; + colorize(red: number, green: number, blue: number): State; + colorMap(type: 'shared'): State; + colorMap(type: 'private'): State; + colorMap(type: string): State; + colors(colors: number): State; + colorspace(space: 'CineonLog'): State; + colorspace(space: 'CMYK'): State; + colorspace(space: 'GRAY'): State; + colorspace(space: 'HSL'): State; + colorspace(space: 'HSB'): State; + colorspace(space: 'OHTA'): State; + colorspace(space: 'RGB'): State; + colorspace(space: 'Rec601Luma'): State; + colorspace(space: 'Rec709Luma'): State; + colorspace(space: 'Rec601YCbCr'): State; + colorspace(space: 'Rec709YCbCr'): State; + colorspace(space: 'Transparent'): State; + colorspace(space: 'XYZ'): State; + colorspace(space: 'YCbCr'): State; + colorspace(space: 'YIQ'): State; + colorspace(space: 'YPbPr'): State; + colorspace(space: 'YUV'): State; + colorspace(space: string): State; + compose(operator: 'Over'): State; + compose(operator: 'In'): State; + compose(operator: 'Out'): State; + compose(operator: 'Atop'): State; + compose(operator: 'Xor'): State; + compose(operator: 'Plus'): State; + compose(operator: 'Minus'): State; + compose(operator: 'Add'): State; + compose(operator: 'Subtract'): State; + compose(operator: 'Difference'): State; + compose(operator: 'Divide'): State; + compose(operator: 'Multiply'): State; + compose(operator: 'Bumpmap'): State; + compose(operator: 'Copy'): State; + compose(operator: 'CopyRed'): State; + compose(operator: 'CopyGreen'): State; + compose(operator: 'CopyBlue'): State; + compose(operator: 'CopyOpacity'): State; + compose(operator: 'CopyCyan'): State; + compose(operator: 'CopyMagenta'): State; + compose(operator: 'CopyYellow'): State; + compose(operator: 'CopyBlack'): State; + compose(operator: string): State; + compress(type: 'None'): State; + compress(type: 'BZip'): State; + compress(type: 'Fax'): State; + compress(type: 'Group4'): State; + compress(type: 'JPEG'): State; + compress(type: 'Lossless'): State; + compress(type: 'LZW'): State; + compress(type: 'RLE'): State; + compress(type: 'Zip'): State; + compress(type: 'LZMA'): State; + compress(type: string): State; + contrast(multiplier: number): State; + convolve(kernel: string): State; + createDirectories(): State; + crop(width: number, height: number, x?: number, y?: number, percent?: boolean): State; + cycle(amount: number): State; + deconstruct(): State; + define(): State; + delay(milliseconds: number): State; + density(width: number, height: number): State; + despeckle(): State; + displace(horizontal: number, vertical: number): State; + display(xServer: string): State; + dispose(method: 'Undefined'): State; + dispose(method: 'None'): State; + dispose(method: 'Background'): State; + dispose(method: 'Previous'): State; + dispose(method: string): State; + dissolve(percent: number): State; + dither(enable?: boolean): State; + edge(radius?: number): State; + emboss(radius?: number): State; + encoding(encoding: 'AdobeCustom'): State; + encoding(encoding: 'AdobeExpert'): State; + encoding(encoding: 'AdobeStandard'): State; + encoding(encoding: 'AppleRoman'): State; + encoding(encoding: 'BIG5'): State; + encoding(encoding: 'GB2312'): State; + encoding(encoding: 'Latin 2'): State; + encoding(encoding: 'None'): State; + encoding(encoding: 'SJIScode'): State; + encoding(encoding: 'Symbol'): State; + encoding(encoding: 'Unicode'): State; + encoding(encoding: 'Wansung'): State; + encoding(encoding: string): State; + endian(type: 'MSB'): State; + endian(type: 'LSB'): State; + endian(type: 'Native'): State; + endian(type: string): State; + enhance(): State; + equalize(): State; + extent(width: number, height: number, options?: string): State; + file(filename: string): State; + filter(type: 'Point'): State; + filter(type: 'Box'): State; + filter(type: 'Triangle'): State; + filter(type: 'Hermite'): State; + filter(type: 'Hanning'): State; + filter(type: 'Hamming'): State; + filter(type: 'Blackman'): State; + filter(type: 'Gaussian'): State; + filter(type: 'Quadratic'): State; + filter(type: 'Cubic'): State; + filter(type: 'Catrom'): State; + filter(type: 'Mitchell'): State; + filter(type: 'Lanczos'): State; + filter(type: 'Bessel'): State; + filter(type: 'Sinc'): State; + filter(type: string): State; + flatten(): State; + flip(): State; + flop(): State; + foreground(color: string): State; + frame(width: number, height: number, outerBevelWidth: number, outBevelHeight: number): State; + fuzz(distance: number, percent?: boolean): State; + gamma(r: number, g: number, b: number): State; + gaussian(radius: number, sigma?: number): State; + /** Width and height are specified in percents */ + geometry(width: number, height: number, option: '%'): State; + /** Specify maximum area in pixels */ + geometry(width: number, height: number, option: '@'): State; + /** Ignore aspect ratio */ + geometry(width: number, height: number, option: '!'): State; + /** Width and height are minimum values */ + geometry(width: number, height: number, option: '^'): State; + /** Change dimensions only if image is smaller than width or height */ + geometry(width: number, height: number, option: '<'): State; + /** Change dimensions only if image is larger than width or height */ + geometry(width: number, height: number, option: '>'): State; + geometry(width: number, height?: number, option?: string): State; + geometry(geometry: string): State; + greenPrimary(x: number, y: number): State; + gravity(direction: 'NorthWest'): State; + gravity(direction: 'North'): State; + gravity(direction: 'NorthEast'): State; + gravity(direction: 'West'): State; + gravity(direction: 'Center'): State; + gravity(direction: 'East'): State; + gravity(direction: 'SouthWest'): State; + gravity(direction: 'South'): State; + gravity(direction: 'SouthEast'): State; + gravity(direction: string): State; + highlightColor(color: string): State; + highlightStyle(style: 'Assign'): State; + highlightStyle(style: 'Threshold'): State; + highlightStyle(style: 'Tint'): State; + highlightStyle(style: 'XOR'): State; + highlightStyle(style: string): State; + iconGeometry(geometry: string): State; + implode(factor?: number): State; + intent(type: 'Absolute'): State; + intent(type: 'Perceptual'): State; + intent(type: 'Relative'): State; + intent(type: 'Saturation'): State; + intent(type: string): State; + interlace(type: 'None'): State; + interlace(type: 'Line'): State; + interlace(type: 'Plane'): State; + interlace(type: 'Partition'): State; + interlace(type: string): State; + label(name: string): State; + lat(width: number, height: number, offset: number, percent?: boolean): State; + level(blackPoint: number, gamma: number, whitePoint: number, percent?: boolean): State; + limit(type: 'disk', val: string): State; + limit(type: 'file', val: string): State; + limit(type: 'map', val: string): State; + limit(type: 'memory', val: string): State; + limit(type: 'pixels', val: string): State; + limit(type: 'threads', val: string): State; + limit(type: string, val: string): State; + list(type: string): State; + list(type: 'Color'): State; + list(type: 'Delegate'): State; + list(type: 'Format'): State; + list(type: 'Magic'): State; + list(type: 'Module'): State; + list(type: 'Resource'): State; + list(type: 'Type'): State; + log(format: string): State; + loop(iterations: number): State; + lower(width: number, height: number): State; + magnify(factor: number): State; + map(filename: string): State; + mask(filename: string): State; + matte(): State; + matteColor(color: string): State; + maximumError(limit: number): State; + median(radius?: number): State; + minify(factor: number): State; + mode(mode: 'frame'): State; + mode(mode: 'unframe'): State; + mode(mode: 'concatenate'): State; + mode(mode: string): State; + modulate(b: number, s: number, h: number): State; + monitor(): State; + monochrome(): State; + morph(otherImg: string, outName: string, callback?: WriteCallback): State; + morph(otherImg: string[], outName: string, callback?: WriteCallback): State; + mosaic(): State; + motionBlur(radius: number, sigma?: number, angle?: number): State; + name(): State; + negative(): State; + noise(type: 'uniform'): State; + noise(type: 'gaussian'): State; + noise(type: 'multiplicative'): State; + noise(type: 'impulse'): State; + noise(type: 'laplacian'): State; + noise(type: 'poisson'): State; + noise(type: string): State; + noise(radius: number): State; + noop(): State; + normalize(): State; + opaque(color: string): State; + operator(channel: string, operator: 'Add', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'And', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Assign', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Depth', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Divide', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Gamma', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Negate', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'LShift', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Log', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Max', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Min', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Multiply', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Or', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Pow', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'RShift', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Subtract', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Threshold', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Threshold-White', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Threshold-White-Negate', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Threshold-Black', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Threshold-Black-Negate', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Xor', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Noise-Gaussian', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Noise-Impulse', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Noise-Laplacian', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Noise-Multiplicative', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Noise-Poisson', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Noise-Random', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: 'Noise-Uniform', rvalue: number, percent?: boolean): State; + operator(channel: string, operator: string, rvalue: number, percent?: boolean): State; + orderedDither(channelType: 'All', NxN: string): State; + orderedDither(channelType: 'Intensity', NxN: string): State; + orderedDither(channelType: 'Red', NxN: string): State; + orderedDither(channelType: 'Green', NxN: string): State; + orderedDither(channelType: 'Blue', NxN: string): State; + orderedDither(channelType: 'Cyan', NxN: string): State; + orderedDither(channelType: 'Magenta', NxN: string): State; + orderedDither(channelType: 'Yellow', NxN: string): State; + orderedDither(channelType: 'Black', NxN: string): State; + orderedDither(channelType: 'Opacity', NxN: string): State; + orderedDither(channelType: string, NxN: string): State; + outputDirectory(directory: string): State; + page(width: number, height: number, arg?: '%'): State; + page(width: number, height: number, arg?: '!'): State; + page(width: number, height: number, arg?: '<'): State; + page(width: number, height: number, arg?: '>'): State; + page(width: number, height: number, arg?: string): State; + pause(seconds: number): State; + pen(color: string): State; + ping(): State; + pointSize(size: number): State; + noProfile(): State; + preview(type: 'Rotate'): State; + preview(type: 'Shear'): State; + preview(type: 'Roll'): State; + preview(type: 'Hue'): State; + preview(type: 'Saturation'): State; + preview(type: 'Brightness'): State; + preview(type: 'Gamma'): State; + preview(type: 'Spiff'): State; + preview(type: 'Dull'): State; + preview(type: 'Grayscale'): State; + preview(type: 'Quantize'): State; + preview(type: 'Despeckle'): State; + preview(type: 'ReduceNoise'): State; + preview(type: 'AddNoise'): State; + preview(type: 'Sharpen'): State; + preview(type: 'Blur'): State; + preview(type: 'Threshold'): State; + preview(type: 'EdgeDetect'): State; + preview(type: 'Spread'): State; + preview(type: 'Shade'): State; + preview(type: 'Raise'): State; + preview(type: 'Segment'): State; + preview(type: 'Solarize'): State; + preview(type: 'Swirl'): State; + preview(type: 'Implode'): State; + preview(type: 'Wave'): State; + preview(type: 'OilPaint'): State; + preview(type: 'CharcoalDrawing'): State; + preview(type: 'JPEG'): State; + preview(type: string): State; + paint(radius: number): State; + process(command: string): State; + profile(filename: string): State; + progress(): State; + randomThreshold(channelType: 'All', LOWxHIGH: string): State; + randomThreshold(channelType: 'Intensity', LOWxHIGH: string): State; + randomThreshold(channelType: 'Red', LOWxHIGH: string): State; + randomThreshold(channelType: 'Green', LOWxHIGH: string): State; + randomThreshold(channelType: 'Blue', LOWxHIGH: string): State; + randomThreshold(channelType: 'Cyan', LOWxHIGH: string): State; + randomThreshold(channelType: 'Magenta', LOWxHIGH: string): State; + randomThreshold(channelType: 'Yellow', LOWxHIGH: string): State; + randomThreshold(channelType: 'Black', LOWxHIGH: string): State; + randomThreshold(channelType: 'Opacity', LOWxHIGH: string): State; + randomThreshold(channelType: string, LOWxHIGH: string): State; + quality(level: number): State; + raise(width: number, height: number): State; + recolor(matrix: string): State; + redPrimary(x: number, y: number): State; + region(width: number, height: number, x?: number, y?: number): State; + remote(): State; + render(): State; + repage(reset: '+'): State; + repage(reset: string): State; + repage(width: number, height: number, xoff: number, yoff: number, arg?: string): State; + sample(geometry: string): State; + samplingFactor(horizontalFactor: number, verticalFactor: number): State; + rawSize(width: number, height: number, offset?: number): State; + resample(horizontal: number, vertical: number): State; + /** Width and height are specified in percents */ + resize(width: number, height: number, option: '%'): State; + /** Specify maximum area in pixels */ + resize(width: number, height: number, option: '@'): State; + /** Ignore aspect ratio */ + resize(width: number, height: number, option: '!'): State; + /** Width and height are minimum values */ + resize(width: number, height: number, option: '^'): State; + /** Change dimensions only if image is smaller than width or height */ + resize(width: number, height: number, option: '<'): State; + /** Change dimensions only if image is larger than width or height */ + resize(width: number, height: number, option: '>'): State; + resize(width: number, height?: number, option?: string): State; + roll(horizontal: number, vertical: number): State; + rotate(backgroundColor: string, degrees: number): State; + scene(index: number): State; + scenes(start: number, end: number): State; + scale(width: number, height: number): State; + screen(): State; + segment(clustherThreshold: number, smoothingThreshold: number): State; + sepia(): State; + set(attribute: string, value: string): State; + setFormat(format: string): State; + shade(azimuth: number, elevation: number): State; + shadow(radius: number, sigma?: number): State; + sharedMemory(): State; + shave(width: number, height: number, percent?: boolean): State; + sharpen(radius: number, sigma?: number): State; + shear(xDegrees: number, yDegress: number): State; + silent(): State; + snaps(count: number): State; + solarize(threshold: number): State; + spread(amount: number): State; + stegano(offset: number): State; + stereo(): State; + strip(): State; + swirl(degrees: number): State; + textFont(font: string): State; + threshold(value: number, percent?: boolean): State; + thumb(width: number, height: number, outName: string, callback: WriteCallback): State; + thumb(width: number, height: number, outName: string, quality: number, callback: WriteCallback): State; + thumb(width: number, height: number, outName: string, quality: number, align: 'topleft', callback: WriteCallback): State; + thumb(width: number, height: number, outName: string, quality: number, align: 'center', callback: WriteCallback): State; + thumb(width: number, height: number, outName: string, quality: number, align: string, callback: WriteCallback): State; + tile(filename: string): State; + title(title: string): State; + transform(color: string): State; + transparent(color: string): State; + treeDepth(depth: number): State; + trim(): State; + type(type: 'Bilevel'): State; + type(type: 'Grayscale'): State; + type(type: 'Palette'): State; + type(type: 'PaletteMatte'): State; + type(type: 'TrueColor'): State; + type(type: 'TrueColorMatte'): State; + type(type: 'ColorSeparation'): State; + type(type: 'ColorSeparationMatte'): State; + type(type: 'Optimize'): State; + type(type: string): State; + update(seconds: number): State; + units(type: 'Undefined'): State; + units(type: 'PixelsPerInch'): State; + units(type: 'PixelsPerCentimeter'): State; + units(type: string): State; + unsharp(radius: number, sigma?: number, amount?: number, threshold?: number): State; + usePixmap(): State; + view(): State; + virtualPixel(method: 'Constant'): State; + virtualPixel(method: 'Edge'): State; + virtualPixel(method: 'Mirror'): State; + virtualPixel(method: 'Tile'): State; + virtualPixel(method: string): State; + visual(type: 'StaticGray'): State; + visual(type: 'GrayScale'): State; + visual(type: 'StaticColor'): State; + visual(type: 'PseudoColor'): State; + visual(type: 'TrueColor'): State; + visual(type: 'DirectColor'): State; + visual(type: 'default'): State; + visual(type: string): State; + watermark(brightness: number, saturation: number): State; + wave(amplitude: number, wavelength: number): State; + whitePoint(x: number, y: number): State; + whiteThreshold(intensity: number): State; + whiteThreshold(red: number, green: number, blue: number, opacity?: number): State; + window(id: string): State; + windowGroup(): State; + + // Getters + color(callback: GetterCallback): State; + depth(callback: GetterCallback): State; + filesize(callback: GetterCallback): State; + format(callback: GetterCallback): State; + identify(callback: GetterCallback): State; + res(callback: GetterCallback): State; + size(callback: GetterCallback): State; + orientation(callback: GetterCallback): State; + + // Drawing Operations + draw(args: string): State; + drawArc(x0: number, y0: number, x1: number, y1: number, r0: number, r1: number): State; + drawBezier(x0: number, y0: number, x1: number, y1: number): State; + drawBezier(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number): State; + drawBezier(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, ...coords: number[]): State; + drawCircle(x0: number, y0: number, x1: number, y1: number): State; + drawEllipse(x0: number, y0: number, rx: number, ry: number, a0: number, a1: number): State; + drawLine(x0: number, y0: number, x1: number, y1: number): State; + drawPoint(x: number, y: number): State; + drawPolygon(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number): State; + drawPolygon(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, ...coords: number[]): State; + drawPolyline(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number): State; + drawPolyline(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, ...coords: number[]): State; + drawRectangle(x0: number, y0: number, x1: number, y1: number): State; + drawRectangle(x0: number, y0: number, x1: number, y1: number, rc: number): State; + drawRectangle(x0: number, y0: number, x1: number, y1: number, wc: number, hc: number): State; + drawText(x: number, y: number, text: string, gravity: 'NorthWest'): State; + drawText(x: number, y: number, text: string, gravity: 'North'): State; + drawText(x: number, y: number, text: string, gravity: 'NorthEast'): State; + drawText(x: number, y: number, text: string, gravity: 'West'): State; + drawText(x: number, y: number, text: string, gravity: 'Center'): State; + drawText(x: number, y: number, text: string, gravity: 'East'): State; + drawText(x: number, y: number, text: string, gravity: 'SouthWest'): State; + drawText(x: number, y: number, text: string, gravity: 'South'): State; + drawText(x: number, y: number, text: string, gravity: 'SouthEast'): State; + drawText(x: number, y: number, text: string, gravity?: string): State; + fill(color: string): State; + font(name: string, size?: number): State; + fontSize(size: number): State; + stroke(color: string, width?: number): State; + strokeWidth(width: number): State; + setDraw(property: 'color', x: number, y: number, method: 'point'): State; + setDraw(property: 'color', x: number, y: number, method: 'replace'): State; + setDraw(property: 'color', x: number, y: number, method: 'floodfill'): State; + setDraw(property: 'color', x: number, y: number, method: 'filltoborder'): State; + setDraw(property: 'color', x: number, y: number, method: 'reset'): State; + setDraw(property: 'matte', x: number, y: number, method: 'point'): State; + setDraw(property: 'matte', x: number, y: number, method: 'replace'): State; + setDraw(property: 'matte', x: number, y: number, method: 'floodfill'): State; + setDraw(property: 'matte', x: number, y: number, method: 'filltoborder'): State; + setDraw(property: 'matte', x: number, y: number, method: 'reset'): State; + setDraw(property: string, x: number, y: number, method: string): State; + + // Commands + stream(callback?: WriteCallback): stream.PassThrough; + stream(format: string, callback?: WriteCallback): stream.PassThrough; + toBuffer(callback: (err: Error, buffer: Buffer) => any): stream.PassThrough; + toBuffer(format: string, callback: (err: Error, buffer: Buffer) => any): stream.PassThrough; + write(filename: string, callback: WriteCallback): void; + } + + export interface SubClass { + (image: string): State; + } + + export function compare(filename1: string, filename2: string, callback: CompareCallback): void; + export function compare(filename1: string, filename2: string, tolerance: number, callback: CompareCallback): void; + export function compare(filename1: string, filename2: string, options: CompareOptions, callback: CompareCallback): void; + + export function subClass(options: ClassOptions): SubClass; + } + + export = m; +}