import type { DataSourceFn, DataSourceResultFn } from '../data-source.types'; import type { BuildDataSourceFnConfig, DataSourceFnBuilderParam } from './build-data-source-fn.types'; import type { DataSourceFnBuilder } from './data-source-fn-builder.types'; /** * Takes a DataSourceFnBuilder and uses it to create a DataSourceResultFn. * * @param builder - A DataSourceFnBuilder * @return A Result function with input and output inferred from the provided builder */ export declare const buildDataSourceResultFn: (builder: DataSourceFnBuilderParam) => DataSourceResultFn; /** * Takes a DataSourceFnBuilder and uses it to create a function. * * @param builder - A DataSourceFnBuilder * @return A function with input and output inferred from the provided builder */ export declare const buildDataSourceFn: (builder: DataSourceFnBuilderParam) => DataSourceFn; /** * Takes a DataSourceFnBuilder and uses it to create a config function that returns a DataSourceFn. * * @param builder - A DataSourceFnBuilder * @return A function that takes a config object and returns a DataSourceFn. The type and options * of the config are determined by the builder. * * If the provided builder has a mapInputFn or mapOutputFn, the config will allow for an * alternate map function of the same type. When passed, the original map functions in * the builder will be replaced. * * The intention of this is to allow for "middleware"-like behavior. The config is type-safe * as the input type and output type of the function match up to the types found on the builder. */ export declare const buildConfigureDataSourceFn: (builder: DataSourceFnBuilderParam) => (config?: BuildDataSourceFnConfig | undefined) => DataSourceFn;