/** * Options that can be specified in an `@inject()` decorator. */ export interface InjectOptions { /** * The ID of the service. */ service: string; /** * Whether or not this is a required dependency. If a required dependency * cannot be satisfied, the dependency injection container will throw an * error. */ isRequired?: boolean; } /** * A dependency expressed by an `@inject()` decorator. */ export interface Dependency extends InjectOptions { /** * The property name. */ property: string | symbol; } /** * A property decorator that declares the property as a service dependency. The * injection container will set this property to the appropriate service if it * exists. * * @param options The service ID or an object specifying dependency options. */ export declare function inject(options: string | InjectOptions): PropertyDecorator; /** * Gets all dependencies for a given object. * * @param obj The object to get dependencies for. */ export declare function getDependencies(obj: object): Dependency[];