import * as d3 from "d3"; export = d3.layout.cloud; declare module "d3" { namespace layout { export function cloud(): Cloud; export function cloud(): Cloud; namespace cloud { interface Word { text?: string | undefined; font?: string | undefined; style?: string | undefined; weight?: string | number | undefined; rotate?: number | undefined; size?: number | undefined; padding?: number | undefined; x?: number | undefined; y?: number | undefined; } } interface Cloud { start(): Cloud; stop(): Cloud; timeInterval(): number; timeInterval(interval: number): Cloud; words(): T[]; words(words: T[]): Cloud; size(): [number, number]; size(size: [number, number]): Cloud; font(): (datum: T, index: number) => string; font(font: string | ((datum: T, index: number) => string)): Cloud; fontStyle(): (datum: T, index: number) => string; fontStyle(style: string | ((datum: T, index: number) => string)): Cloud; fontWeight(): (datum: T, index: number) => string | number; fontWeight(weight: string | number | ((datum: T, index: number) => string | number)): Cloud; rotate(): (datum: T, index: number) => number; rotate(rotate: number | ((datum: T, index: number) => number)): Cloud; text(): (datum: T, index: number) => string; text(text: string | ((datum: T, index: number) => string)): Cloud; spiral(): (size: [number, number]) => (t: number) => [number, number]; spiral(name: string | ((size: [number, number]) => (t: number) => [number, number])): Cloud; fontSize(): (datum: T, index: number) => number; fontSize(size: number | ((datum: T, index: number) => number)): Cloud; padding(): (datum: T, index: number) => number; padding(padding: number | ((datum: T, index: number) => number)): Cloud; /** * If specified, sets the internal random number generator,used for selecting the initial position of each word, * and the clockwise/counterclockwise direction of the spiral for each word. * * @param randomFunction should return a number in the range [0, 1).The default is Math.random. */ random(): Cloud; random(randomFunction: () => number): Cloud; /** * If specified, sets the canvas generator function, which is used internally to draw text. * When using Node.js, you will almost definitely override the default, e.g. using the canvas module. * @param canvasGenerator should return a HTMLCanvasElement.The default is: ()=>{document.createElement("canvas");} */ canvas(): Cloud; canvas(canvasGenerator: () => HTMLCanvasElement): Cloud; on(type: "word", listener: (word: T) => void): Cloud; on(type: "end", listener: (tags: T[], bounds: Array<{ x: number; y: number }>) => void): Cloud; on(type: string, listener: (...args: any[]) => void): Cloud; on(type: "word"): (word: T) => void; on(type: "end"): (tags: T[], bounds: Array<{ x: number; y: number }>) => void; on(type: string): (...args: any[]) => void; } } }