export type GetFieldsFn = (collection: string) => Record<string, any> | null | undefined;
/**
 * Validate a baasix_Block payload.
 *
 * @param data       the (partial) block payload
 * @param getFields  resolver returning the field map of a collection, or null
 *                   when the collection does not exist
 */
export declare function validateBlockData(data: any, getFields: GetFieldsFn): void;
/**
 * Validate a baasix_Page payload.
 */
export declare function validatePageData(data: any, isCreate: boolean): void;
/**
 * Merge an existing block row with an incoming patch to produce a full object
 * that can be passed to validateBlockData.
 *
 * The patch wins on every key it provides; existing fills gaps.
 */
export declare function mergeBlockForUpdate(existing: Record<string, any>, patch: Record<string, any>): Record<string, any>;
/** Build a GetFieldsFn backed by the live schemaManager (columns + relation names). */
export declare function makeGetFields(schemaManager: any): GetFieldsFn;
/**
 * Register lifecycle hooks for baasix_Page and baasix_Block.
 *
 * Uses dynamic imports for hooksManager/schemaManager/ItemsService so this
 * module stays side-effect free when only the pure validators are imported
 * (e.g. from unit tests).
 */
export declare function registerPageBuilderHooks(): Promise<void>;
declare const _default: {
    validateBlockData: typeof validateBlockData;
    validatePageData: typeof validatePageData;
    mergeBlockForUpdate: typeof mergeBlockForUpdate;
    registerPageBuilderHooks: typeof registerPageBuilderHooks;
};
export default _default;
//# sourceMappingURL=BlockConfigService.d.ts.map