import { InjectFlags } from '../Injector'; import { Provider } from '../Providers/Provider'; export type ClassDecoratorArgs = [(target: T) => void | T]; export type PropertyDecoratorArgs = [Object, string | symbol]; export type MethodDecoratorArgs = [Object, string | symbol, TypedPropertyDescriptor]; export type ParameterDecoratorArgs = [Object, string | symbol, number]; export declare function isClassDecorator(args: any): args is ClassDecoratorArgs; export declare function isPropertyDecorator(args: any): args is PropertyDecoratorArgs; export declare function isMethodDecorator(args: any): args is MethodDecoratorArgs; export declare function isParameterDecorator(args: any): args is ParameterDecorator; export declare var InjectSchema: import("@gallant/annotate").AnnotationSchema; export interface InjectOptions { token?: any; flags?: InjectFlags; defaultValue?: any; parameter?: number; args?: any[]; provides?: Provider[]; provideSelf?: boolean; } export declare function Inject(token?: any, options?: InjectOptions | any[]): (...args: any[]) => void; export declare function InjectWith(options?: InjectOptions | any[]): (...args: any[]) => void;