import 'reflect-metadata'; export interface Ctor extends Function { new (...args: any[]): T; prototype: T; } export declare const CLASS_METADATA_KEY = "__adamant_class_metadata"; export declare const PROPERTY_METADATA_KEY = "__adamant_property_metadata"; export declare function getClassMetadata(target: Ctor | Function, type?: Ctor): T[]; export declare function pushClassMetadata(target: Ctor | Function, metadata: any): void; export declare function getPropertyMetadata(target: any, property: string | symbol, type?: Ctor): T[]; export declare function getAllPropertyMetadata(target: any): Map; export declare function pushPropertyMetadata(target: any, property: string | symbol, metadata: any): void; export declare function populate(target: T, source: Partial): T;