import { Container, ServiceCtor } from "@vlocode/core"; import { DatapackFilter } from './datapackDeployer'; import { DatapackDeploymentSpec } from './datapackDeploymentSpec'; export declare class DatapackDeploymentSpecRegistry { private readonly container; /** * Get the current global {@link DatapackDeploymentSpecRegistry} instance registered in the root container */ static get instance(): any; private readonly specs; constructor(container: Container); /** * Get the number of specs registered in this registry. */ get size(): number; /** * Standard iterator to iterate over the specs in this registry and the global registry. * @returns Iterable */ getSpecs(): Generator<{ filter: DatapackFilter; spec: DatapackDeploymentSpec; }, void, unknown>; /** * Register an individual spec function to be executed in for the datapacks of the specified type in this deployment. * @param datapackType type of the Datapack * @param fn name of the hook function * @param executor function executed */ static registerFunction(this: void, datapackType: string, fn: T, executor: DatapackDeploymentSpec[T]): void; /** * Register a spec with 1 or more hooks to be executed in for the datapacks of the specified type in this deployment. * @param filter filter that determines when this datapack is applied * @param spec Object matching the {@link DatapackDeploymentSpec}-shape */ static register(this: void, filter: DatapackFilter | string, spec: DatapackDeploymentSpec | ServiceCtor): void; /** * Register an individual spec function to be executed in for the datapacks of the specified type in this deployment. * @param datapackType type of the Datapack * @param fn name of the hook function * @param executor function executed */ registerFunction(datapackType: string, fn: T, executor: DatapackDeploymentSpec[T]): void; /** * Register a spec with 1 or more hooks to be executed in for the datapacks of the specified type in this deployment. * @param filter filter that determines when this datapack is applied * @param spec Object matching the {@link DatapackDeploymentSpec}-shape */ register(filter: DatapackFilter | string, spec: DatapackDeploymentSpec | ServiceCtor): void; } /** * Classes decorated with this decorator will be registered in the {@link DatapackDeploymentSpecRegistry} and in the global-container as transient service types. * @param filter filter that determines to which datapacks or sobject-records this deployment spec applies */ export declare function deploymentSpec(filter: DatapackFilter): (constructor: any) => any; //# sourceMappingURL=datapackDeploymentSpecRegistry.d.ts.map