@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
63 lines • 2.92 kB
TypeScript
import { InjectionToken, Injector } from '@angular/core';
import { Router } from '@angular/router';
import { ExtensionFactory, ExtensionPointWithoutStateForPlugins, GenericHookType, PluginsResolveService, GenericHookOptions } from '@c8y/ngx-components';
import { Observable } from 'rxjs';
import { RegisterDeviceItem } from './RegisterDeviceItem';
import * as i0 from "@angular/core";
/**
* An extension HOOK can use either a pure value:
* ```typescript
* { provide: HOOK_X, useValue: { ...hookValue }, multi: true }
* ```
*
* Or an array to directly register multiple:
* ```typescript
* { provide: HOOK_X, useValue: [{ ...hookValues }], multi: true }
* ```
*
* Or an ExtensionFactory which allows to define a get() function. This function
* gets called on each navigation with the current route and can return values
* async (observable or promise).
* ```typescript
* { provide: HOOK_X, useFactory: { get: (route) => doSomethingAsync(route) }, multi: true }
* ```
*/
export type RegisterDeviceExtension = RegisterDeviceItem | RegisterDeviceItem[] | ExtensionFactory<RegisterDeviceItem>;
/**
* A hook to use for Multi Provider extension.
* @deprecated Consider using the `hookDeviceRegistration` function instead.
*/
export declare const HOOK_DEVICE_REGISTRATION: InjectionToken<RegisterDeviceExtension>;
/**
* You can either provide a single `RegisterDeviceExtension` as parameter:
* ```typescript
* hookDeviceRegistration(...)
* ```
*
* Or an array to directly register multiple:
* ```typescript
* hookDeviceRegistration([...])
* ```
*
* Or you provide an Service that implements `ExtensionFactory<RegisterDeviceExtension>`
* ```typescript
* export class MyDeviceRegistrationFactory implements ExtensionFactory<RegisterDeviceExtension> {...}
* ...
* hookDeviceRegistration(MyDeviceRegistrationFactory)
* ```
* A typed alternative to `HOOK_DEVICE_REGISTRATION`.
* @param registration The `RegisterDeviceExtension`'s or `ExtensionFactory` to be provided.
* @returns An `Provider` to be provided in your module.
*/
export declare function hookDeviceRegistration(registration: GenericHookType<RegisterDeviceExtension>, options?: Partial<GenericHookOptions>): import("@angular/core").ValueProvider | import("@angular/core").ClassProvider | import("@angular/core").ExistingProvider;
/**
* A service which defines device registration options.
*/
export declare class RegisterDeviceExtensionService extends ExtensionPointWithoutStateForPlugins<RegisterDeviceItem> {
private router;
constructor(rootInjector: Injector, router: Router, plugins: PluginsResolveService);
protected setupItemsObservable(): Observable<RegisterDeviceItem[]>;
static ɵfac: i0.ɵɵFactoryDeclaration<RegisterDeviceExtensionService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<RegisterDeviceExtensionService>;
}
//# sourceMappingURL=register-device-extension.service.d.ts.map