import { Boundary, DesignWidget } from "@/types";
import DesignService from "@/services/design.service";
import { UpdateData, YWidget } from "@/services/synchronize.service";
export declare enum LineDirection {
    ROW = 0,
    COLUMN = 1
}
export declare enum DistanceEnum {
    ADSORB = 0,
    SHOW_LINE = 1,
    REMOTE = 2
}
interface Line {
    id: string;
    direction: LineDirection;
    x: number;
    y: number;
    show: boolean;
}
export interface BoundaryLine extends Line {
    width: number | string;
    height: number | string;
}
export interface AlignmentOption {
    showAlign: boolean;
    enableAdsorb: boolean;
    alignWeight: number;
    alignColor: string;
    showAlignSpan: number;
    adsorbSpan: number;
    pagePadding: [number, number, number, number];
}
export default class AlignmentLineService {
    option: AlignmentOption;
    designService: DesignService;
    boundaryLine: Array<BoundaryLine>;
    constructor(option: AlignmentOption, designService: DesignService);
    setPaddingLine(): void;
    onNewWidgetMove(widgets: Array<DesignWidget>, designService: DesignService): void;
    onWidgetGroupMove(yWidgets: Array<YWidget>): void;
    handlerWidgetMove(boundary: Boundary, adsorbHandler: Function): void;
    adsorbNewWidge(designService: DesignService, place: string, line: BoundaryLine): void;
    adsorbWidgets(yWidgets: Array<YWidget>, place: string, line: BoundaryLine, boundary: Boundary): void;
    onBoundaryMove(selecteds: Array<YWidget>, direct: string[]): void;
    getDistance(span: number, line: number): {
        distance: number;
        tag: DistanceEnum;
    };
    addBoundaryLine(widget: DesignWidget): void;
    delBoundaryLine(id: string): void;
    clearAllLine(): void;
    hideAllLine(): void;
    handlerAlignmentLine(updateData: UpdateData): void;
    leftJustify(): void;
    rightJustify(): void;
    topJustify(): void;
    bottomJustify(): void;
    rowBetween(): void;
    columnBetween(): void;
}
export {};
