import type { Bounds, IBaseLayoutOptions, TagItemAttribute, TagItemFunction, TagOutputItem } from './interface'; import { BaseLayout } from './base'; export interface TagItem { text: number | string; fontFamily?: string; fontStyle?: string; fontWeight?: string; angle?: number; fontSize?: number; padding?: number; xoff?: number; yoff?: number; x?: number; y?: number; x1?: number; y1?: number; x0?: number; y0?: number; hasText?: boolean; sprite?: number[]; datum: any; width: number; height: number; } interface ICloudLayoutOptions extends IBaseLayoutOptions { spiral?: 'archimedean' | 'rectangular' | ((size: [number, number]) => (t: number) => [number, number]); padding?: TagItemAttribute; enlarge?: boolean; customInsertZerosToArray?: (array: any[], index: number, length: number) => void; } export declare class CloudLayout extends BaseLayout { getTextPadding: TagItemFunction; spiral: (size: [number, number]) => (t: number) => [number, number]; random: () => number; cw: number; ch: number; _size: [number, number]; _originSize: [number, number]; _isBoardExpandCompleted: boolean; _placeStatus: number; _tTemp?: number; _dtTemp?: number; _dy: number; contextAndRatio?: { context: CanvasRenderingContext2D; ratio: number; canvas: HTMLCanvasElement; }; _board: Uint32Array; _bounds: Bounds; cacheMap: Map; static defaultOptions: Partial; constructor(options: ICloudLayoutOptions); zoomRatio(): number; dy(): number; layoutWord(index: number): boolean; layout(words: any[], config: { width: number; height: number; }): TagOutputItem[]; formatTagItem(words: TagOutputItem[]): any[]; output(): any[]; progressiveOutput(): any[]; private updateBoardExpandStatus; private shouldShrinkContinue; private shrinkBoard; private expandBoard; private insertZerosToArray; private getContext; private place; private clearCache; private setCache; private isSizeLargerThanMax; } export {};