///
import sharp, { Sharp, Matrix3x3 } from 'sharp';
import { Duplex } from 'stream';
import { IFastlyParams, Mapper, Warning } from '../imageopto-types';
declare type SharpCall = [keyof Sharp, any[]];
declare type CallbackOf = (err: Error, res: T) => void;
declare class MockSharp extends Duplex implements Sharp {
calls: SharpCall[];
removeAlpha(): sharp.Sharp;
ensureAlpha(): sharp.Sharp;
extractChannel(..._: any[]): sharp.Sharp;
joinChannel(..._: any[]): sharp.Sharp;
bandbool(..._: any[]): sharp.Sharp;
tint(..._: any[]): sharp.Sharp;
greyscale(..._: any[]): sharp.Sharp;
grayscale(..._: any[]): sharp.Sharp;
toColourspace(..._: any[]): sharp.Sharp;
toColorspace(..._: any[]): sharp.Sharp;
composite(..._: any[]): sharp.Sharp;
clone(): sharp.Sharp;
metadata(callback: (err: Error, metadata: sharp.Metadata) => void): sharp.Sharp;
metadata(): Promise;
stats(callback: (err: Error, stats: sharp.Stats) => void): sharp.Sharp;
stats(): Promise;
limitInputPixels(..._: any[]): sharp.Sharp;
sequentialRead(..._: any[]): sharp.Sharp;
rotate(_angle?: number | undefined, _options?: sharp.RotateOptions | undefined): sharp.Sharp;
flip(_flip?: boolean | undefined): sharp.Sharp;
flop(_flop?: boolean | undefined): sharp.Sharp;
sharpen(_sigma?: number | undefined, _flat?: number | undefined, _jagged?: number | undefined): sharp.Sharp;
median(_size?: number | undefined): sharp.Sharp;
blur(_sigma?: number | undefined): sharp.Sharp;
flatten(_flatten?: boolean | sharp.FlattenOptions | undefined): sharp.Sharp;
gamma(_gamma?: number | undefined): sharp.Sharp;
negate(_negate?: boolean | undefined): sharp.Sharp;
normalise(_normalise?: boolean | undefined): sharp.Sharp;
normalize(_normalize?: boolean | undefined): sharp.Sharp;
convolve(_kernel: sharp.Kernel): sharp.Sharp;
threshold(_threshold?: number | undefined, _options?: sharp.ThresholdOptions | undefined): sharp.Sharp;
boolean(_operand: string | Buffer, _operator: string, _options?: {
raw: sharp.Raw;
} | undefined): sharp.Sharp;
linear(_a?: number | null | undefined, _b?: number | undefined): sharp.Sharp;
recomb(_matrix: Matrix3x3): MockSharp;
modulate(..._: any[]): sharp.Sharp;
toFile(fileOut: string, callback: CallbackOf): sharp.Sharp;
toFile(fileOut: string): Promise;
toBuffer(callback: (err: Error, buffer: Buffer, info: sharp.OutputInfo) => void): sharp.Sharp;
toBuffer(options?: {
resolveWithObject: false;
} | undefined): Promise;
toBuffer(options: {
resolveWithObject: true;
}): Promise<{
data: Buffer;
info: sharp.OutputInfo;
}>;
withMetadata(..._: any[]): sharp.Sharp;
jpeg(..._: any[]): sharp.Sharp;
png(..._: any[]): sharp.Sharp;
webp(..._: any[]): sharp.Sharp;
tiff(..._: any[]): sharp.Sharp;
raw(): sharp.Sharp;
toFormat(_format: string | sharp.AvailableFormatInfo, _options?: sharp.JpegOptions | sharp.OutputOptions | sharp.PngOptions | sharp.WebpOptions | sharp.TiffOptions | undefined): sharp.Sharp;
tile(_tile?: sharp.TileOptions | undefined): sharp.Sharp;
resize(_width?: sharp.ResizeOptions | number | null | undefined, _height?: number | null | undefined, _options?: sharp.ResizeOptions | undefined): sharp.Sharp;
extend(_extend: number | sharp.ExtendOptions): sharp.Sharp;
extract(_region: sharp.Region): sharp.Sharp;
trim(_threshold?: number | undefined): sharp.Sharp;
private track;
}
export declare function mockParams(query: string): IFastlyParams;
export declare function runMapperWithParams(mapper: Mapper, query: string): {
mock: MockSharp;
warnings: Warning[];
mapped: MockSharp | false;
};
export {};