import { type Functions } from 'firebase/functions'; import { type FirebaseFunctionTypeMap, type FirebaseFunctionMap } from './function'; import { type FirebaseFunctionTypeConfigMap } from './function.factory'; /** * Type map for development-only Firebase functions. */ export type DevelopmentFirebaseFunctionTypeMap = FirebaseFunctionTypeMap; /** * Configuration map for development functions, mapping each function key to optional config. */ export type DevelopmentFirebaseFunctionConfigMap = FirebaseFunctionTypeConfigMap; /** * Map of instantiated development Firebase callable functions. */ export type DevelopmentFirebaseFunctionMap = FirebaseFunctionMap; /** * Factory that creates a {@link DevelopmentFirebaseFunctionMap} for a given `Functions` instance. */ export type DevelopmentFirebaseFunctionMapFactory = (functionsInstance: Functions) => DevelopmentFirebaseFunctionMap; /** * Creates a {@link DevelopmentFirebaseFunctionMapFactory} that routes all development function calls * through the single `runDevFunction` Cloud Function endpoint (identified by {@link RUN_DEV_FUNCTION_APP_FUNCTION_KEY}). * * Similar to {@link callModelFirebaseFunctionMapFactory}, all development functions are multiplexed * through a single endpoint. The function specifier and data are wrapped via {@link onCallDevelopmentParams}. * * @param configMap - maps each development function key to optional configuration * @returns a factory that creates a {@link DevelopmentFirebaseFunctionMap} for a given `Functions` instance * * @example * ```ts * const factory = developmentFirebaseFunctionMapFactory({ * resetData: null, * seedDatabase: null * }); * const devFns = factory(getFunctions()); * await devFns.resetData(); * ``` */ export declare function developmentFirebaseFunctionMapFactory(configMap: DevelopmentFirebaseFunctionConfigMap): DevelopmentFirebaseFunctionMapFactory;