import { AbstractType } from "../type"; import { AppServiceInfoRegistry } from "./appServiceInfoRegistry"; /** * Marks a class as being contract for transient application services. * * @export * @param {boolean} [allowMultiple=false] Indicates whether multiple services may be registered with the same contract or not. * @param {AbstractType} [contractType] Indicates the contract type, if different from the decorated type. * @param {*} [contractToken] Indicates the contract token, if different from the contract type. */ export declare function AppServiceContract({ allowMultiple, contractType, contractToken, registry, ...args }?: { allowMultiple?: boolean; contractType?: AbstractType; contractToken?: any; registry?: AppServiceInfoRegistry; [key: string]: any; }): (type: AbstractType) => void; /** * Marks a class as being contract for singleton application services. * * @export * @param {boolean} [allowMultiple=false] Indicates whether multiple services may be registered with the same contract or not. * @param {AbstractType} [contractType] Indicates the contract type, if different from the decorated type. * @param {*} [contractToken] Indicates the contract token, if different from the contract type. */ export declare function SingletonAppServiceContract({ allowMultiple, contractType, contractToken, registry, ...args }?: { allowMultiple?: boolean; contractType?: AbstractType; contractToken?: any; registry?: AppServiceInfoRegistry; [key: string]: any; }): (type: AbstractType) => void;