import type { ChangeOptionsMode, WatermarkOptions } from '@watermark-design/core';
/**
 * Watermark class
 */
declare class Watermark {
    private options;
    private parentElement;
    private observer?;
    private parentObserve?;
    private watermarkDom?;
    private props?;
    private layoutCanvas?;
    private checkWatermarkElementRequestID?;
    private watermarkCanvas?;
    /**
     * Watermark constructor
     * @param args - watermark args
     */
    constructor(args?: Partial<WatermarkOptions>);
    /**
     * Change watermark options
     * @param args
     * @param mode
     * @param redraw
     */
    changeOptions(args?: Partial<WatermarkOptions>, mode?: ChangeOptionsMode, redraw?: boolean): Promise<void>;
    /**
     * Creating a watermark.
     */
    create(): Promise<void>;
    /**
     * Delete this watermark.
     */
    destroy(): void;
    check(): Promise<void>;
    private remove;
    private initConfigData;
    private changeParentElement;
    private validateUnique;
    private validateContent;
    private checkParentElementType;
    private checkWatermarkElement;
    private bindMutationObserve;
    private bindCheckWatermarkElementEvent;
    private unbindCheckWatermarkElementEvent;
}
export { Watermark };
