import type { IFacility } from "./Activator"; import type { IActivityHandler, IActivityContext } from "./IActivityHandler"; /** Do not reference. */ interface IActivityHandlerConstructorWithFacility { prototype: IActivityHandlerWithFacility; new (): IActivityHandlerWithFacility; } /** Do not reference. */ interface IActivityHandlerConstructorWithTwoFacilities { prototype: IActivityHandlerWithTwoFacilities; new (): IActivityHandlerWithTwoFacilities; } /** Do not reference. */ interface IActivityHandlerWithFacility { execute: { (inputs: any, context: IActivityContext, facility: T, ...args: any[]): Promise | object; [basisPropertyName]?: IFacility; }; } /** Do not reference. */ interface IActivityHandlerWithTwoFacilities { execute: { (inputs: any, context: IActivityContext, facility1: T1, facility2: T2, ...args: any[]): Promise; [basisPropertyName]?: IFacility; [basisTwoPropertyName]?: IFacility; }; } declare const basisPropertyName = "AB6BF11D-6ED6-45F2-8FCB-B9BECC39A905:Basis"; declare const basisTwoPropertyName = "AB6BF11D-6ED6-45F2-8FCB-B9BECC39A905:BasisTwo"; /** * Decorates activity handlers which require a facility. * @public */ export declare function activate(basis: T): (target: IActivityHandlerConstructorWithFacility) => void; /** Decorates activity handlers which require two facilities. */ export declare function activateTwo(basis1: T1, basis2: T2): (target: IActivityHandlerConstructorWithTwoFacilities) => void; /** * Discovered facility types previously assigned to the specified handler. * @param handler An activity handler to inspect for associated facilities. */ export declare function query(handler: IActivityHandler): IFacility[]; export {};