import { OolongApp } from "../../OolongApp";
/**
 * AI Viewport API
 * 提供给 AI 调用的视口操作接口
 */
export declare class AIViewportAPI {
    app: OolongApp;
    constructor(app: OolongApp);
    /**
     * 获取上下文
     */
    private getCtx;
    /**
     * 获取视口边界
     * @returns {code: 200, bounds: {minX, minY, maxX, maxY, width, height}} | {code: number, msg: string}
     */
    getViewportBounds(): {
        code: number;
        bounds?: {
            minX: number;
            minY: number;
            maxX: number;
            maxY: number;
            width: number;
            height: number;
        };
        msg?: string;
    };
    /**
     * 缩放到指定边界区域
     * @param minX - 目标区域的最小X坐标
     * @param minY - 目标区域的最小Y坐标
     * @param maxX - 目标区域的最大X坐标
     * @param maxY - 目标区域的最大Y坐标
     * @returns {code: 200} | {code: number, msg: string}
     */
    zoomToBounds(minX: number, minY: number, maxX: number, maxY: number): {
        code: number;
        msg?: string;
    };
    /**
     * 缩放适配画布中的所有节点
     * 将所有节点完整显示在视口中
     * @returns {code: 200} | {code: number, msg: string}
     */
    zoomToFit(): {
        code: number;
        msg?: string;
    };
    /**
     * 缩放到当前选中的节点
     * 将选中节点居中显示在视口中
     * @returns {code: 200} | {code: number, msg: string}
     */
    zoomToSelect(): {
        code: number;
        msg?: string;
    };
    /**
     * 寻找画布上的空白区域
     * 根据所需的宽高，在当前视窗范围内寻找一块不与已有节点重叠的空白位置
     * @param params 所需区域参数
     * @returns {code: 200, data: {x, y, width, height}} | {code: number, msg: string}
     */
    findEmptyPlace(params: {
        width: number;
        height: number;
        padding?: number;
    }): {
        code: number;
        data?: {
            x: number;
            y: number;
            width: number;
            height: number;
        };
        msg?: string;
    };
}
//# sourceMappingURL=AIViewportAPI.d.ts.map