/** * @module component * @preferred * The root package of pip-services-components. */ import { ConfigParams } from 'pip-services3-commons-node'; import { IConfigurable } from 'pip-services3-commons-node'; import { IReferences } from 'pip-services3-commons-node'; import { IReferenceable } from 'pip-services3-commons-node'; import { DependencyResolver } from 'pip-services3-commons-node'; import { CompositeLogger } from './log/CompositeLogger'; import { CompositeCounters } from './count/CompositeCounters'; import { CompositeTracer } from './trace/CompositeTracer'; /** * Abstract component that supportes configurable dependencies, logging * and performance counters. * * ### Configuration parameters ### * * - __dependencies:__ * - [dependency name 1]: Dependency 1 locator (descriptor) * - ... * - [dependency name N]: Dependency N locator (descriptor) * * ### References ### * * - \*:counters:\*:\*:1.0 (optional) [[ICounters]] components to pass collected measurements * - \*:logger:\*:\*:1.0 (optional) [[ILogger]] components to pass log messages * - \*:tracer:\*:\*:1.0 (optional) [[ITracer]] components to record traces * - ... References must match configured dependencies. */ export declare class Component implements IConfigurable, IReferenceable { protected _dependencyResolver: DependencyResolver; protected _logger: CompositeLogger; protected _counters: CompositeCounters; protected _tracer: CompositeTracer; /** * Configures component by passing configuration parameters. * * @param config configuration parameters to be set. */ configure(config: ConfigParams): void; /** * Sets references to dependent components. * * @param references references to locate the component dependencies. */ setReferences(references: IReferences): void; }