import { SdkItem } from './dto/sdk-item';
export declare class ServiceMetadata {
    static serviceMetadataCache: ServiceMetadataDefinition;
    static serviceMetadataHash: string;
    static taxonomies: SdkItem[];
    static fetch(metadataHash: string, traceContext?: any): Promise<ServiceMetadataDefinition>;
    static getDefaultFieldName(typeFullName: string): any;
    static getSetNameFromType(itemType: string): string | undefined;
    static getModuleDisplayName(itemType: string): string;
    static getParentType(itemType: string): string | null;
    static getChildTypes(itemType: string): Array<Array<string>>;
    static isPropertyACollection(type: string, propName: string): boolean;
    static getRelatedType(type: string, relationName: string): string | null;
    private static getEntityDefinition;
    private static isRelatedProperty;
    private static isPrimitiveProperty;
    static serializeFilterValue(type: string, propName: string, value: any): any;
    static getSimpleFields(type: string): string[];
    static getRelationFields(type: string): string[];
    static getTaxonomyFieldName(type: string, taxonomyName: string): string | undefined;
}
export interface ServiceMetadataDefinition {
    definitions: {
        [key: string]: any;
    };
    entityContainer: {
        entitySets: {
            [key: string]: any;
        };
    };
}
