import { CardinalitySettings } from '../../internal';
import { ArgumentValue, CdmAttribute, CdmAttributeItem, CdmCollection, CdmCorpusContext, CdmObject, CdmObjectReference, CdmTraitReferenceBase, copyOptions, identifierRef, resolveOptions } from '../../internal';
import { AttributeGroupReference, CardinalitySettingsData, CdmJsonType, EntityAttribute, TraitGroupReference, TraitReference, TypeAttribute } from './types';
/**
 * Converts a JSON object to a CdmCollection of TraitReferences and TraitGroupReferences
 */
export declare function createTraitReferenceArray(ctx: CdmCorpusContext, object: (string | TraitReference | TraitGroupReference)[]): CdmTraitReferenceBase[];
/**
 * Adds all elements of an array to a CdmCollection
 */
export declare function addArrayToCdmCollection<T extends CdmObject>(cdmCollection: CdmCollection<T>, array: T[]): void;
/**
 * Creates a CDM object from a JSON object
 */
export declare function createConstant(ctx: CdmCorpusContext, object: CdmJsonType): ArgumentValue;
/**
 * Converts a JSON object to an Attribute object
 */
export declare function createAttribute(ctx: CdmCorpusContext, object: (string | AttributeGroupReference | EntityAttribute | TypeAttribute), entityName?: string): CdmAttributeItem;
/**
 * Converts a JSON object to a CdmCollection of attributes
 */
export declare function createAttributeArray(ctx: CdmCorpusContext, object: (string | AttributeGroupReference | EntityAttribute | TypeAttribute)[], entityName?: string): CdmAttributeItem[];
/**
 * Create a copy of the reference object
 */
export declare function copyIdentifierRef(objRef: CdmObjectReference, resOpt: resolveOptions, options: copyOptions): string | identifierRef;
/**
 * Converts dynamic input into a string for a property (ints are converted to string)
 * @param value The value that should be converted to a string.
 */
export declare function propertyFromDataToString(value: any): string;
/**
 * Converts dynamic input into an int for a property (numbers represented as strings are converted to int)
 * @param value The value that should be converted to an int.
 */
export declare function propertyFromDataToInt(value: any): number;
/**
 * Converts dynamic input into a boolean for a property (booleans represented as strings are converted to boolean)
 * @param value The value that should be converted to a boolean.
 */
export declare function propertyFromDataToBool(value: any): boolean;
/**
 * Converts cardinality data into a CardinalitySettings object
 * @param object The dasta representation of CardinalitySettings.
 * @param attribute The attribute object where the cardinality object belongs.
 * @returns The CardinalitySettings object.
 */
export declare function cardinalitySettingsFromData(object: CardinalitySettingsData, attribute: CdmAttribute): CardinalitySettings;
/**
 * Converts CardinalitySettings into a CardinalitySettingsData object
 * @param instance The CardinalitySettings object.
 */
export declare function cardinalitySettingsToData(instance: CardinalitySettings): CardinalitySettingsData;
