import { Query, Type } from '@angular/core';
export interface BindingDescriptor {
    propName: string;
    templateName: string;
}
export interface QueryDescriptor {
    propName: string;
    query: Query;
}
export declare function isDirective(a: any): boolean;
export declare function isComponent(a: any): boolean;
export declare function isMethod(target: any, property: any): boolean;
export declare function spyOnMethod(target: any, property: any): void;
export declare function annotationFor(component: Type<any>): any;
export declare function propMetadataBindingsFor(component: Type<any>, ngMetadataName: "Input" | "Output"): BindingDescriptor[];
export declare function propMetadataQueriesFor(component: Type<any>, ngMetadataName: "ContentChild" | "ContentChildren"): QueryDescriptor[];
export declare function annotationBindingsFor(component: Type<any>, annotation: any, annotationKey: "inputs" | "outputs"): string[];
export declare function inputAnnotationsBindingsFor(component: Type<any>, annotation: any): string[];
export declare function outputAnnotationsBindingsFor(component: Type<any>, annotation: any): string[];
export declare function inputPropMetadataBindingsFor(component: Type<any>): BindingDescriptor[];
export declare function outputPropMetadataBindingsFor(component: Type<any>): BindingDescriptor[];
export declare function contentChildPropMetadataQueriesFor(component: Type<any>): QueryDescriptor[];
export declare function contentChildrenPropMetadataQueriesFor(component: Type<any>): QueryDescriptor[];
export declare function providesNgValueAccessor(annotation: any): boolean;
export declare function createSpy(): () => any;
