import { IdentifierMetadata, InputMetadata, OutputMetadata, PropertyMetadata, ResourceMetadata, SubCollectionMetadata, SubResourceMetadata } from '../metadata'; export declare function validateMetadata(target: Function): void; export declare function addResourceMetadata(metadata: ResourceMetadata): void; export declare function getResourceMetadata(target: Function): ResourceMetadata; export declare function addPropertyMetadata(metadata: PropertyMetadata): void; export declare function getPropertiesMetadata(target: Function): Array; export declare function getPropertyMetadata(target: Function, propertyName: string): PropertyMetadata; export declare function addSubResourceMetadata(metadata: SubResourceMetadata): void; export declare function getSubResourcesMetadata(target: Function): Array; export declare function getSubResourceMetadata(target: Function, propertyName: string): SubResourceMetadata; export declare function addSubCollectionMetadata(metadata: SubCollectionMetadata): void; export declare function getSubCollectionsMetadata(target: Function): Array; export declare function getSubCollectionMetadata(target: Function, propertyName: string): SubCollectionMetadata; export declare function addIdentifierMetadata(metadata: IdentifierMetadata): void; export declare function getIdentifierMetadata(target: Function): IdentifierMetadata; export declare function addInputMetadata(metadata: InputMetadata): void; export declare function getInputsMetadata(target: Function): Array; export declare function getInputMetadata(target: Function, propertyName: string): InputMetadata; export declare function addOutputMetadata(metadata: OutputMetadata): void; export declare function getOutputsMetadata(target: Function): Array; export declare function getOutputMetadata(target: Function, propertyName: string): OutputMetadata;