import type { GeometricMaskShape, ICreateCanvas, SegmentationInputType, TextShapeMask } from '../interface/wordcloud'; import type { IPointLike } from '@visactor/vutils'; export declare const generateIsEmptyPixel: (backgroundColor?: string, options?: { threshold?: number; invert?: boolean; }, createCanvas?: ICreateCanvas) => (imageData: ImageData, y: number, x: number) => boolean; export declare const generateMaskCanvas: (shape: TextShapeMask | GeometricMaskShape, width: number, height: number, cacheCanvas?: HTMLCanvasElement, invert?: boolean, createCanvas?: ICreateCanvas) => { width: number; height: number; setAttribute: (key: string, val: string) => void; getContext: (contextId: string, params?: { willReadFrequently?: boolean; }) => any; }; export declare const generatePoints: (center: IPointLike, radius: number, startAngle: number, count: number) => { x: number; y: number; }[]; export declare const generateCardioidPoints: (center: IPointLike, radius: number, startAngle: number, count: number) => { x: number; y: number; }[]; export declare const drawRegularPolygon: (ctx: CanvasRenderingContext2D, points: IPointLike[]) => void; export declare const drawCardioid: (ctx: CanvasRenderingContext2D, points: IPointLike[]) => void; export declare function segmentation(segmentationInput: SegmentationInputType): SegmentationInputType & { segmentation: { regions: { label: number; boundary: any; area: any; center: any; maxPoint: any; maxR: any; ratio: any; }[]; labels: any[]; labelNumber: number; }; shapeBounds: { x1: number; x2: number; y1: number; y2: number; width: number; height: number; }; shapeMaxR: number; shapeRatio: number; shapeCenter: number[]; shapeArea: number; }; export declare function removeBorder(image: any, canvas: HTMLCanvasElement | any, isEmptyPixel: (imageData: ImageData, i: number, j: number) => boolean): any; export declare function scaleAndMiddleShape(image: any, size: [number, number]): { x: number; y: number; width: number; height: number; scale: number; };