import { ArgumentValue, CdmConstantEntityDefinition, cdmDataFormat, CdmObject, CdmTraitReference } from '../internal';
/**
 * @internal
 * attribute and entity traits that are represented as properties
 * this entire class is gross. it is a different abstraction level than all of the rest of this om.
 * however, it does make it easier to work with the consumption object model so ... i will hold my nose.
 */
export declare class traitToPropertyMap {
    private TAG;
    private host;
    private get ctx();
    private get traits();
    constructor(host: CdmObject);
    /**
     * @internal
     */
    updatePropertyValue(propertyName: string, newValue: any | ArgumentValue | string[]): void;
    /**
     * @internal
     */
    fetchPropertyValue(propertyName: string, fromProperty?: boolean): ArgumentValue | string[] | number | boolean | any;
    /**
     * @internal
     */
    fetchTraitReference(traitName: string, fromProperty?: boolean): CdmTraitReference;
    /**
     * @internal
     */
    removeTrait(traitName: string): void;
    /**
     * @internal
     */
    mapBooleanTrait(traitName: string, value: boolean): void;
    /**
     * @internal
     */
    dataFormatToTraits(dataFormat: cdmDataFormat): void;
    /**
     * @internal
     */
    mapTraitName(propertyName: string): string;
    /**
     * @internal
     */
    traitsToDataFormat(onlyFromProperty?: boolean): cdmDataFormat;
    /**
     * @internal
     */
    fetchOrCreateTrait(traitName: string, simpleRef?: boolean): CdmTraitReference;
    /**
     * @internal
     */
    updateTraitArgument(traitName: string, argName: string, value: ArgumentValue): void;
    /**
     * @internal
     */
    updateTraitTable(traitName: string, argName: string, entityName: string, action: (cEnt: CdmConstantEntityDefinition, created: boolean) => void): void;
    /**
     * @internal
     */
    fetchTraitTable(traitName: string, argName: string, fromProperty: boolean): CdmConstantEntityDefinition;
    /**
     * @internal
     */
    constructLocalizedTraitTable(traitName: string, sourceText: string): void;
    /**
     * @internal
     */
    fetchLocalizedTraitTable(traitName: string, fromProperty: boolean): string;
    /**
     * @internal
     */
    updateSingleAttributeTraitTable(traitName: string, argName: string, entityName: string, sourceText: string[]): void;
    /**
     * @internal
     */
    fetchSingleAttTraittable(traitName: string, argName: string, fromProperty: boolean): string[];
    /**
     * @internal
     */
    fetchDefaultValue(fromProperty: boolean): any;
    /**
     * @internal
     */
    updateDefaultValue(newDefault: any): void;
    private fetchTraitReferenceArgumentValue;
}
