import type { IMetadataEntry } from '../interface/class/index';
import type { TMetadata } from '../type/class/index';
export declare class MetadataStorage {
    private static instance;
    private readonly STORAGE;
    static getInstance(): MetadataStorage;
    getAllEntitiesMetadata(): Record<string, TMetadata>;
    getMetadata(entityName: string): TMetadata | undefined;
    getMetadata(entityName: string, propertyName: string): IMetadataEntry | undefined;
    getMetadata<K extends keyof IMetadataEntry>(entityName: string, propertyName: string, key: K): IMetadataEntry[K] | undefined;
    setMetadata<K extends keyof IMetadataEntry>(entityName: string, propertyName: string, key: K, value: IMetadataEntry[K]): void;
}
