import { RuntimeTraitInfo } from "./RuntimeTraitInfo"; import { Namespace } from "./Namespace"; import { Multiname } from "./Multiname"; export declare class RuntimeTraits { superTraits: RuntimeTraits; protectedNs: Namespace; protectedNsMappings: any; slots: RuntimeTraitInfo[]; private _traits; private _nextSlotID; constructor(superTraits: RuntimeTraits, protectedNs: Namespace, protectedNsMappings: any); /** * Adds the given trait and returns any trait that might already exist under that name. * * See the comment for `Trait#resolveRuntimeTraits` for an explanation of the lookup scheme. */ addTrait(trait: RuntimeTraitInfo): RuntimeTraitInfo; addSlotTrait(trait: RuntimeTraitInfo): void; private multinames; getTraitMultiname(mn: Multiname): RuntimeTraitInfo; /** * Returns the trait matching the given multiname parts, if any. * * See the comment for `Trait#resolveRuntimeTraits` for an explanation of the lookup scheme. */ getTrait(namespaces: Namespace[], name: string): RuntimeTraitInfo; getTraitsList(): any[]; getSlotPublicTraitNames(): string[]; getSlot(i: number): RuntimeTraitInfo; }