import type { Field, TabAsField } from '../fields/config/types.js';
export type TraverseFieldsCallback = (args: {
    /**
     * The current field
     */
    field: Field | TabAsField;
    /**
     * Function that when called will skip the current field and continue to the next
     */
    next?: () => void;
    /**
     * The parent reference object
     */
    parentRef?: Record<string, unknown> | unknown;
    /**
     * The current reference object
     */
    ref?: Record<string, unknown> | unknown;
}) => boolean | void;
type TraverseFieldsArgs = {
    callback: TraverseFieldsCallback;
    fields: (Field | TabAsField)[];
    parentRef?: Record<string, unknown> | unknown;
    ref?: Record<string, unknown> | unknown;
};
/**
 * Iterate a recurse an array of fields, calling a callback for each field
 *
 * @param fields
 * @param callback callback called for each field, discontinue looping if callback returns truthy
 * @param ref
 * @param parentRef
 */
export declare const traverseFields: ({ callback, fields, parentRef, ref, }: TraverseFieldsArgs) => void;
export {};
//# sourceMappingURL=traverseFields.d.ts.map