import type { ImageCloudOptions, ImageCollageType, ImageConfig, ImageCloudSegmentationOutputType } from '../interface'; import type { SegmentationInputType } from '../../interface/wordcloud'; export declare abstract class Layout { options: ImageCloudOptions; data: any[]; protected isMaskImageFinished?: boolean; protected isImagesFinished?: boolean; protected isLayoutFinished?: boolean; protected progressiveResult?: any[]; protected segmentationInput?: SegmentationInputType; protected segmentationOutput?: ImageCloudSegmentationOutputType; protected imageCollageList?: ImageCollageType[]; abstract doLayout(images: ImageCollageType[]): ImageCollageType[]; constructor(options: ImageCloudOptions); preProcess(): ImageCollageType[]; onImageCollageInputReady(images: any): void; layout(data: any[]): void; loadSegmentationInput(): void; loadImageCollageInput(): void; canAnimate(): boolean; unfinished(): boolean; output(): any[]; progressiveRun(): void; progressiveOutput(): any[]; release(): void; protected calculateImageSize(images: ImageCollageType[], imageConfig?: ImageConfig, ratio?: number): ImageCollageType[]; protected generateTransparentMaskCanvas(shapeImage: any, size: [number, number]): HTMLCanvasElement; protected processOutput(images: ImageCollageType[]): ImageCollageType[]; }