/**
 * This file is part of the NocoBase (R) project.
 * Copyright (c) 2020-2024 NocoBase Co., Ltd.
 * Authors: NocoBase Team.
 *
 * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
 * For more information, please refer to: https://www.nocobase.com/agreement.
 */
import type { FlowSurfaceMutateOp, FlowSurfaceNodeSpec, FlowSurfaceWriteTarget } from '../types';
type CompiledNodeRefLike = {
    uidRef: any;
};
type SyncChildrenResultLike = {
    childClientKeyRefs: Record<string, any>;
    finalItemRefs: CompiledNodeRefLike[];
    itemsChanged: boolean;
    itemsSpecified: boolean;
};
export declare function omitLayoutProps(props?: Record<string, any>): Record<string, any>;
export declare function buildAutoLayout(itemRefs: any[]): {
    rows: {
        [k: string]: any[][];
    };
    sizes: {
        [k: string]: number[];
    };
    rowOrder: string[];
};
declare function didItemRefsChange(currentChildren: FlowSurfaceNodeSpec[], desiredRefs: CompiledNodeRefLike[]): boolean;
export declare function emitLayoutOp(ops: FlowSurfaceMutateOp[], target: FlowSurfaceWriteTarget, currentNode: any, desiredNode: Pick<FlowSurfaceNodeSpec, 'props' | 'use'>, childSync: SyncChildrenResultLike): void;
export declare function emitMoveOps(ops: FlowSurfaceMutateOp[], desiredRefs: CompiledNodeRefLike[]): void;
export declare function emitMoveTabOps(ops: FlowSurfaceMutateOp[], desiredRefs: CompiledNodeRefLike[]): void;
export declare function emitMovePopupTabOps(ops: FlowSurfaceMutateOp[], desiredRefs: CompiledNodeRefLike[]): void;
export { didItemRefsChange };
