import { ArgumentValue, CdmArgumentDefinition, CdmTraitDefinition, ResolvedTrait, resolveOptions, spewCatcher } from '../internal';
/**
     * @internal
     */
export declare class ResolvedTraitSet {
    get size(): number;
    get first(): ResolvedTrait;
    set: ResolvedTrait[];
    resOpt: resolveOptions;
    hasElevated: boolean;
    private readonly lookupByTrait;
    constructor(resOpt: resolveOptions);
    merge(toMerge: ResolvedTrait, copyOnWrite: boolean): ResolvedTraitSet;
    mergeSet(toMerge: ResolvedTraitSet, elevatedOnly?: boolean): ResolvedTraitSet;
    get(trait: CdmTraitDefinition): ResolvedTrait;
    find(resOpt: resolveOptions, traitName: string): ResolvedTrait;
    remove(resOpt: resolveOptions, traitName: string): boolean;
    deepCopy(): ResolvedTraitSet;
    shallowCopyWithException(just: CdmTraitDefinition): ResolvedTraitSet;
    shallowCopy(): ResolvedTraitSet;
    collectTraitNames(): Set<string>;
    setParameterValueFromArgument(trait: CdmTraitDefinition, arg: CdmArgumentDefinition): void;
    setTraitParameterValue(resOpt: resolveOptions, toTrait: CdmTraitDefinition, paramName: string, value: ArgumentValue): ResolvedTraitSet;
    replaceTraitParameterValue(resOpt: resolveOptions, toTrait: string, paramName: string, valueWhen: ArgumentValue, valueNew: ArgumentValue): ResolvedTraitSet;
    spew(resOpt: resolveOptions, to: spewCatcher, indent: string, nameSort: boolean): void;
}
