///
import Jimp = require("jimp");
export interface PotraceOptions {
/**
* how to resolve ambiguities in path decomposition (default "minority")
*/
turdPolicy?: "minority" | "majority" | "black" | "white" | "left" | "right";
/**
* suppress speckles of up to this size (default 2)
*/
turdSize?: number;
/**
* corner threshold parameter (default 1)
*/
alphaMax?: number;
/**
* curve optimization (default true)
*/
optCurve?: boolean;
/**
* curve optimization tolerance (default 0.2)
*/
optTolerance?: number;
/**
* threshold below which color is considered black (0..255, default -1)
*/
threshold?: number;
/**
* specifies colors by which side from threshold should be traced (default true)
*/
blackOnWhite?: boolean;
/**
* foreground color (default: 'auto' (black or white)) Will be ignored when exporting as ``
*/
color?: string | "auto";
/**
* background color (default: 'transparent') Will be ignored when exporting as ``
*/
background?: string | "transparent";
}
export interface PosterizerOptions extends PotraceOptions {
/**
* Number of samples that needs to be taken (and number of layers in SVG). (default: -1, which most likely will result in 3, sometimes 4)
*/
steps?: number;
/**
* How to select fill color for color ranges - equally spread or dominant. (default: "dominant")
*/
fillStrategy?: string | "dominant";
/**
* How to choose thresholds in-between - after equal intervals or automatically balanced. (default: "auto")
*/
rangeDistribution?: string | "auto";
}
export function trace(
file: string | Buffer | Jimp,
cb: (error: Error | null, svg: string, potrace: Potrace) => void,
): void;
export function trace(
file: string | Buffer | Jimp,
options: PotraceOptions,
cb: (error: Error | null, svg: string, potrace: Potrace) => void,
): void;
export function posterize(
file: string | Buffer | Jimp,
options: PosterizerOptions,
cb: (error: Error | null, svg: string, posterizer: Posterizer) => void,
): void;
export function posterize(
file: string | Buffer | Jimp,
cb: (error: Error | null, svg: string, posterizer: Posterizer) => void,
): void;
export class Posterizer {
constructor(options?: PosterizerOptions);
loadImage(image: string | Buffer | Jimp, callback: (posterizer: Posterizer, error: Error | null) => void): void;
setParameters(params: PotraceOptions): void;
getSVG(): string;
getSymbol(id: string): string;
}
export class Potrace {
constructor(options?: PotraceOptions);
loadImage(image: string | Buffer | Jimp, callback: (potrace: Potrace, error: Error | null) => void): void;
setParameters(params: PotraceOptions): void;
getSVG(): string;
getSymbol(id: string): string;
getPathTag(fillColor: string, scale: number): string;
}