import type { Alignable } from '../../../_common/types.js';
import { Bound, Overlay } from '../../../surface-block/index.js';
import type { EdgelessPageBlockComponent } from '../edgeless-page-block.js';
export declare class EdgelessSnapManager extends Overlay {
    container: EdgelessPageBlockComponent;
    constructor(container: EdgelessPageBlockComponent);
    private _alignableBounds;
    /**
     * This variable holds reference lines that are calculated
     * based on the self-alignment of the graphics. This alignment is determined
     * according to various aspects of the graphic itself, such as the center, edges,
     * corners, etc. It essentially represents the guidelines for the positioning
     * and alignment within the individual graphic elements.
     */
    private _intraGraphicAlignLines;
    /**
     * This variable contains reference lines that are
     * generated by the 'Distribute Alignment' function. This alignment is achieved
     * by evenly distributing elements based on specified alignment rules.
     * These lines serve as a guide for achieving equal spacing or distribution
     * among multiple graphics or design elements.
     */
    private _distributedAlignLines;
    private _getBoundsWithRotationByAlignable;
    setupAlignables(alignables: Alignable[]): Bound;
    cleanupAlignables(): void;
    align(bound: Bound): {
        dx: number;
        dy: number;
    };
    private _calculateClosestDistances;
    private _updateXAlignPoint;
    private _updateYAlignPoint;
    private _alignDistributeHorizontally;
    private _alignDistributeVertically;
    private _draw;
    render(ctx: CanvasRenderingContext2D): void;
}
//# sourceMappingURL=snap-manager.d.ts.map