export declare function Readonly(target: any, property: any, descriptor: any): any; export declare function Component(name: any): any; export declare namespace Component { var type: string; var keys: string[]; } export declare function Service(name: any): any; export declare namespace Service { var type: string; var keys: string[]; } export declare function Initialization(target: any, property: any, descriptor: any): any; export declare namespace Initialization { var keys: string[]; } export declare function Resource(name?: any): any; export declare namespace Resource { var keys: string[]; } export declare function Value(express: string, defaultValue?: any): any; export declare namespace Value { var keys: string[]; } export declare function Props(propKeys: string, defaultValue?: any): any; export declare namespace Props { var keys: string[]; } export declare function Lock(target: any, property: any, descriptor?: any): any; export declare namespace Lock { var keys: string[]; } export declare function Comment(value: any): any; export declare namespace Comment { var keys: string[]; } declare type AdviceType = "all" | "service" | "controller" | "bean" | "component"; declare type AdvicePoint = "before" | "after" | "around"; declare interface AdvicePointer { pattern: string | RegExp; point: AdvicePoint; type: AdviceType; } export declare class Adviser { readonly point: AdvicePoint; readonly matcher: RegExp; readonly type: AdviceType; readonly target: any; constructor(pointer: AdvicePointer, target: any); matches(component: any, method: Function): boolean; before(component: any, method: Function): void; after(component: any, method: Function): void; around(component: any, method: Function): void; } export declare function Advice(pointer: AdvicePointer): any; export declare namespace Advice { var keys: string[]; var type: string; } export declare function Assist(assist: 'search' | 'get' | 'create' | 'modify' | 'delete' | Function): any; export declare function Annotation(annotation: Record): any; declare type VWebEvent = 'startup' | 'shutdown' | string; export declare function EventListener(event: VWebEvent): any; export declare function Configuration(name: any): any; export declare namespace Configuration { var type: string; var keys: string[]; } export declare function Bean(name: any): any; export declare namespace Bean { var keys: string[]; var type: string; } export type ConditionalFilter = (context: any, method?: string) => boolean; export type ConditionalContext = { class?: ConditionalFilter; methods?: Record; }; export declare function Conditional(filter: ConditionalFilter): any; export declare function Primary(target: any, property: any, descriptor: any): any; export declare namespace Primary { var keys: string[]; var type: string; } export * from './util';