import { Container } from "../../Core/Container";
import { ICoordinates } from "../../Core/Interfaces/ICoordinates";
import { Particle } from "../../Core/Particle";
import { IDimension } from "../../Core/Interfaces/IDimension";
import { ISvgPath } from "./Interfaces/ISvgPath";
import { IContainerPlugin } from "../../Core/Interfaces/IContainerPlugin";
import { IOptions } from "../../Options/Interfaces/IOptions";
import { RecursivePartial } from "../../Types";
import { IPolygonMask } from "./Options/Interfaces/IPolygonMask";
import { PolygonMask } from "./Options/Classes/PolygonMask";
declare type IPolygonMaskOptions = IOptions & {
    polygon: IPolygonMask;
};
export declare class PolygonMaskInstance implements IContainerPlugin {
    private readonly container;
    redrawTimeout?: number;
    raw?: ICoordinates[];
    paths?: ISvgPath[];
    dimension: IDimension;
    offset?: ICoordinates;
    readonly path2DSupported: boolean;
    readonly options: PolygonMask;
    private polygonMaskMoveRadius;
    constructor(container: Container);
    initAsync(options?: RecursivePartial<IPolygonMaskOptions>): Promise<void>;
    resize(): void;
    stop(): void;
    particlesInitialization(): boolean;
    particlePosition(position?: ICoordinates): ICoordinates | undefined;
    particleBounce(particle: Particle): boolean;
    clickPositionValid(position: ICoordinates): boolean;
    draw(context: CanvasRenderingContext2D): void;
    private checkInsidePolygon;
    private parseSvgPath;
    private downloadSvgPath;
    private drawPoints;
    private randomPoint;
    private getRandomPoint;
    private getRandomPointByLength;
    private getEquidistantPointByIndex;
    private getPointByIndex;
    private createPath2D;
    private initRawData;
}
export {};
