import { CdmCollection, CdmCorpusContext, CdmObject, CdmTraitDefinition, CdmTraitGroupDefinition, CdmTraitGroupReference, CdmTraitReference, CdmTraitReferenceBase } from '../internal';
/**
 * CdmCollection customized for CdmTraitReferenceBase.
 */
export declare class CdmTraitCollection extends CdmCollection<CdmTraitReferenceBase> {
    /**
     * Constructs a CdmTraitCollection by using the parent constructor and TraitRef as the default type.
     * @param ctx The context.
     * @param owner The object this collection is a member of.
     */
    constructor(ctx: CdmCorpusContext, owner: CdmObject);
    insert(index: number, traitReference: CdmTraitReferenceBase): void;
    push(trait: string | CdmTraitDefinition | CdmTraitGroupDefinition | CdmTraitReferenceBase, simpleRefOrArgs?: boolean | [string, any][]): CdmTraitReferenceBase;
    remove(trait: string | CdmTraitDefinition | CdmTraitReference | CdmTraitGroupDefinition | CdmTraitGroupReference, onlyFromProperty?: boolean): boolean;
    concat(traitList: CdmTraitDefinition[] | CdmTraitReference[] | CdmTraitGroupDefinition[] | CdmTraitGroupReference[]): void;
    removeAt(index: number): void;
    /**
     * Returns a new collection consisting of only the trait reference objects present in this collection.
     * @returns New collection of found trait reference objects
     */
    toTraitRefs(): CdmCollection<CdmTraitReference>;
    /**
     * Returns a new collection consisting of only the trait group reference objects present in this collection.
     * @returns New collection of found trait group reference objects
     */
    toTraitGroupRefs(): CdmCollection<CdmTraitGroupReference>;
    indexOf(obj: string | CdmTraitDefinition | CdmTraitReference | CdmTraitGroupDefinition | CdmTraitGroupReference, onlyFromProperty?: boolean): number;
    clear(): void;
    private clearCache;
    private corresponds;
}
