import { CanvasHorizontalAlign, CloudCollider, CloudColliderInput } from '../types'; export interface WordColliderMask { inverted: boolean; generate(context: CanvasRenderingContext2D): void; } export interface WordColliderMaskOptions { inverted?: boolean; } export interface WordColliderConstraint { text: string; count: number; } export interface WordColliderRotation { (item: Item): number; } export interface WordColliderOptions { width?: number; height?: number; font: string; weight?: string | number; textAlign?: CanvasTextAlign; textBaseline?: CanvasHorizontalAlign; gap?: number; mask?: WordColliderMask | null; } export declare const MASK_COLOR = "red"; export declare const EMOJI_REGEX: RegExp; export declare const BUFFER_PX = 10; export declare function defaultRotation(): number; /** * Collider that detects whether a given word is colliding with the already generated words */ export declare class WordCollider implements CloudCollider { _options: Required; _context: CanvasRenderingContext2D; _intersectionContext: CanvasRenderingContext2D; constructor(options: WordColliderOptions); _applyMask(): void; /** * Because emojis cannot be rendered with a stroke, we need to create a mask instead */ _drawEmojiMask(ctx: CanvasRenderingContext2D, x: number, y: number, size: number, gap: number, textAlign: CanvasTextAlign, textBaseline: CanvasHorizontalAlign): void; update(options: Partial, reset?: boolean): void; /** * Reset the word collider to initial state */ reset(): void; intersects({ x, y, rotation: angleDegrees, item }: CloudColliderInput): boolean; } //# sourceMappingURL=word-collider.d.ts.map