import { BaseLayout } from '../layouts/base-layout';
import type { LayoutMapping } from '@antv/layout';
import type { AntVLayout } from '../layouts/types';
import type { RuntimeContext } from '../runtime/types';
import type { GraphData } from '../spec/data';
import type { LayoutOptions, STDLayoutOptions } from '../spec/layout';
/**
* 判断是否是 combo 布局
*
* Determine if it is a combo layout
* @param options - 布局配置项 | Layout options
* @returns 是否是 combo 布局 | Whether it is a combo layout
*/
export declare function isComboLayout(options: STDLayoutOptions): boolean;
/**
* 判断是否是树图布局
*
* Determine if it is a tree layout
* @param options - 布局配置项 | Layout options
* @returns 是否是树图布局 | Whether it is a tree layout
*/
export declare function isTreeLayout(options: STDLayoutOptions): boolean;
/**
* 数据中是否指定了位置
*
* Is the position specified in the data
* @param data - 数据 | Data
* @returns 是否指定了位置 | Is the position specified
*/
export declare function isPositionSpecified(data: Record): boolean;
/**
* 是否是前布局
*
* Is pre-layout
* @remarks
* 前布局是指在初始化元素前计算布局,适用于一些布局需要提前计算位置的场景。
*
* Pre-layout refers to calculating the layout before initializing the elements, which is suitable for some layouts that need to calculate the position in advance.
* @param options - 布局配置项 | Layout options
* @returns 是否是前布局 | Is it a pre-layout
*/
export declare function isPreLayout(options?: LayoutOptions): boolean | undefined;
/**
* 将图布局结果转换为 G6 数据
*
* Convert the layout result to G6 data
* @param layoutMapping - 布局映射 | Layout mapping
* @returns G6 数据 | G6 data
*/
export declare function layoutMapping2GraphData(layoutMapping: LayoutMapping): GraphData;
/**
* 将 @antv/layout 布局适配为 G6 布局
*
* Adapt @antv/layout layout to G6 layout
* @param Ctor - 布局类 | Layout class
* @param context - 运行时上下文 | Runtime context
* @returns G6 布局类 | G6 layout class
*/
export declare function layoutAdapter(Ctor: new (options: Record) => AntVLayout, context: RuntimeContext): new (context: RuntimeContext, options?: Record) => BaseLayout;
/**
* 调用布局成员方法
*
* Call layout member methods
* @remarks
* 提供一种通用的调用方式来调用 G6 布局和 \@antv/layout 布局上的方法
*
* Provide a common way to call methods on G6 layout and \@antv/layout layout
* @param layout - 布局实例 | Layout instance
* @param method - 方法名 | Method name
* @param args - 参数 | Arguments
* @returns 返回值 | Return value
*/
export declare function invokeLayoutMethod(layout: BaseLayout, method: string, ...args: unknown[]): any;
/**
* 获取布局成员属性
*
* Get layout member properties
* @param layout - 布局实例 | Layout instance
* @param name - 属性名 | Property name
* @returns 返回值 | Return value
*/
export declare function getLayoutProperty(layout: BaseLayout, name: string): any;