import ZRText from 'tvrender/lib/graphic/Text.js';
import { LabelLayoutOption } from '../util/types.js';
import { BoundingRect, OrientedBoundingRect, Polyline } from '../util/graphic.js';
interface LabelLayoutListPrepareInput {
    label: ZRText;
    labelLine?: Polyline;
    computedLayoutOption?: LabelLayoutOption;
    priority: number;
    defaultAttr: {
        ignore: boolean;
        labelGuideIgnore?: boolean;
    };
}
export interface LabelLayoutInfo {
    label: ZRText;
    labelLine: Polyline;
    priority: number;
    rect: BoundingRect;
    localRect: BoundingRect;
    obb?: OrientedBoundingRect;
    axisAligned: boolean;
    layoutOption: LabelLayoutOption;
    defaultAttr: {
        ignore: boolean;
        labelGuideIgnore?: boolean;
    };
    transform: number[];
}
export declare function prepareLayoutList(input: LabelLayoutListPrepareInput[]): LabelLayoutInfo[];
/**
 * Adjust labels on x direction to avoid overlap.
 */
export declare function shiftLayoutOnX(list: Pick<LabelLayoutInfo, 'rect' | 'label'>[], leftBound: number, rightBound: number, balanceShift?: boolean): boolean;
/**
 * Adjust labels on y direction to avoid overlap.
 */
export declare function shiftLayoutOnY(list: Pick<LabelLayoutInfo, 'rect' | 'label'>[], topBound: number, bottomBound: number, balanceShift?: boolean): boolean;
export declare function hideOverlap(labelList: LabelLayoutInfo[]): void;
export {};
