import type { Entity } from '@donotdev/core/server';
import type { HttpsFunction } from 'firebase-functions/v2/https';
interface RegisterOptions {
    prefix?: string;
}
/** CRUD functions object returned by createCrudFunctions */
export type CrudFunctions = Record<string, HttpsFunction>;
/**
 * Create CRUD functions for all entities (ESM-friendly)
 * Returns an object of functions that can be spread/exported
 *
 * @param entities - Object of { key: Entity } (from `import * as entities from 'entities'`)
 * @param options - Optional configuration
 * @returns Object of CRUD functions keyed by name
 *
 * @example
 * ```typescript
 * // ESM pattern - use with build-time export generation
 * import * as entities from 'entities';
 * import { createCrudFunctions } from '@donotdev/functions/firebase';
 *
 * export const crud = createCrudFunctions(entities);
 * // Build process generates: export const { create_cars, ... } = crud;
 * ```
 */
export declare function createCrudFunctions(entities: Record<string, Entity | unknown>, options?: RegisterOptions): CrudFunctions;
/**
 * @deprecated Use createCrudFunctions() for ESM. This mutates target which doesn't work in ESM.
 * Auto-register CRUD functions for all entities (CJS pattern)
 */
export declare function registerCrudFunctions(entities: Record<string, Entity | unknown>, target?: Record<string, any>, options?: RegisterOptions): CrudFunctions;
export {};
