import { ComponentSchema, PageSchema } from '../../../types/src/index';
/**
 * 深拷贝数据
 * @param obj
 */
export declare function deepClone<T extends object>(obj: T, cache?: WeakMap<WeakKey, any>): T;
/**
 * 生成新的schema数据
 * 深拷贝数据,防止重复引用
 * 生成uuid
 * 生成field
 * @param schema
 */
export declare function generateNewSchema(schema: ComponentSchema): ComponentSchema;
/**
 * 不改变obj1引用，将obj2所有属性遍历复制给obj1。
 * 递归比较两个对象，将obj2的属性复制给obj1。
 * 如果obj1中有obj2没有的属性，根据shouldDelete参数决定是否删除该属性。
 * @param obj1 - 要修改的对象。
 * @param obj2 - 要比较的对象。
 * @param shouldDelete - 如果为true，则删除obj2中不存在的obj1的属性。
 */
export declare function deepCompareAndModify(obj1: object, obj2: object, shouldDelete?: boolean): void;
/**
 * 深度比较两个对象是否相等
 * @param obj1
 * @param obj2
 * @param ignoreKeys 可选参数，指定要忽略比较的属性名数组
 */
export declare function deepEqual(obj1: object, obj2: object, ignoreKeys?: string[], visitedObjs?: WeakMap<WeakKey, any>): boolean;
/**
 * 通过id获取节点路径
 * @param schemas
 * @param id
 */
export declare function getMatchedById(schemas: ComponentSchema[], id: string): ComponentSchema[];
/**
 * 从嵌套对象中提取值
 * @param object - 要访问的对象
 * @param path - 点分隔的路径字符串
 * @param defaultValue - 如果路径不存在，返回的默认值
 * @returns 通过路径获取的值
 */
export declare function getValueByPath(object: object, path: string, defaultValue?: unknown): any;
/**
 * 在嵌套对象中设置值
 * @param object - 要修改的对象
 * @param path - 点分隔的路径字符串
 * @param value - 要设置的值
 * @returns 修改后的对象
 */
export declare function setValueByPath(object: object, path: string, value: unknown): object;
/**
 *  获取表单字段
 * @param schemas 页面结构数据
 * @param formName 表单name
 */
export declare function getFormFields(schemas: ComponentSchema[], formName?: string): (string | undefined)[];
/**
 * 从给定的组件schema数组中获取特定表单的输入字段schema数组。
 * @param {ComponentSchema[]} schemas - 包含整个表单结构信息的组件schema数组。
 * @param {string} formName - 要获取输入字段schema的表单名称，默认为 "default"。
 * @returns {ComponentSchema[]} 包含表单输入字段schema的数组。
 */
export declare function getFormSchemas(schemas: ComponentSchema[], formName?: string): ComponentSchema[];
/**
 * 查询Schema 返回所有符合添加的数据
 * @param schemas
 * @param handler
 * @param once  当once为true，表示只需要查询一条符合添加的数据之后结束函数
 * @param filter  节点过滤，函数返回 false,则不查询该节点的子节点 children
 */
export declare function findSchemas(schemas: ComponentSchema[], handler: (item: ComponentSchema) => boolean, once?: boolean, filter?: (item: ComponentSchema) => boolean): false | ComponentSchema | ComponentSchema[];
/**
 * 遍历Schema 返回映射的数据
 * @param schemas
 * @param handler 映射处理
 * @param filter  节点过滤，函数返回 false,则不映射该节点得所有子节点 children
 */
export declare function mapSchemas(schemas: ComponentSchema[], handler: (item: ComponentSchema) => ComponentSchema, filter?: (item: ComponentSchema) => boolean): ComponentSchema[];
/**
 * 通过id查询schema
 * @param schemas
 * @param id
 */
export declare function findSchemaById(schemas: ComponentSchema[], id: string): ComponentSchema;
/**
 * 通过id查询schema及节点children index 信息
 * @param schemas
 * @param id
 */
export declare function findSchemaInfoById(schemas: ComponentSchema[], id: string): {
    index: number;
    list: ComponentSchema[];
    parentSchema: ComponentSchema;
    schema: ComponentSchema;
};
/**
 * 将k-form-design数据转换为epic-designer数据
 * @param data
 * @returns
 */
export declare function convertKFormData(data: any): PageSchema;
interface OriginalNode {
    columns?: OriginalNode[];
    icon?: string;
    key?: string;
    label?: string;
    list?: OriginalNode[];
    model?: string;
    options?: Record<string, unknown>;
    rules?: {
        required: boolean;
    }[];
    span?: number;
    tds?: OriginalNode[];
    trs?: OriginalNode[];
    type?: string;
}
/**
 * 递归转换子节点
 * @param children
 */
export declare function recursionConvertedNode(children: OriginalNode[], parent?: OriginalNode): ComponentSchema[];
export {};
