import { Multiname } from '../abc/lazy/Multiname';
import { ASObject } from '../nat/ASObject';
import { Bytecode } from '../abc/ops';
/**
 * TODO: We need a more robust Dictionary implementation that doesn't only give you back
 * string keys when enumerating.
 */
export declare class Dictionary extends ASObject {
    static classInitializer: any;
    private map;
    private refs;
    private keys;
    private weakKeys;
    private primitiveMap;
    constructor(weakKeys?: boolean);
    static makePrimitiveKey(key: any): string | number;
    toJSON(): string;
    axGetProperty(mn: Multiname): any;
    axSetProperty(mn: Multiname, value: any, bc: Bytecode): void;
    axHasPropertyInternal(mn: Multiname): boolean;
    axDeleteProperty(mn: Multiname): any;
    axGetPublicProperty(nm: any): any;
    axGetEnumerableKeys(): any[];
}
//# sourceMappingURL=dictionary.d.ts.map