@iotize/tap
Version:
IoTize Device client for Javascript
29 lines (28 loc) • 1.03 kB
TypeScript
import { AbstractService } from './abstract-service';
import { ServiceCallType } from './definitions';
import { ServiceCallRunner } from './service-call-runner';
/**
* This class will be augmented when importing specific service
* For example:
* ```typescript
* const container: ServiceContainer;
* expect(container.interface).to.be.undefined;
* import '@iotize/tap/service/interface';
* expect(container.interface).to.be.not.undefined;
*
* ```
*/
export declare class ServiceContainer {
readonly serviceCallRunner: ServiceCallRunner;
constructor(serviceCallRunner: ServiceCallRunner);
/**
* List loaded services
*/
services(): AbstractService[];
servicesMap(): Record<string, AbstractService>;
/**
* List all loaded resources
*/
resources(): ServiceCallType[];
}
export declare function extendServiceContainer<T extends AbstractService>(attrName: string, serviceConstructor: new (serviceCallRunner: ServiceCallRunner) => T): ServiceContainer;