import { Emitter } from './emitter.js';
export declare class Dictionary<V, K = string> extends Emitter<{
    define: [key: K, value: V];
    revoke: [key: K];
}> {
    #private;
    protected static define<V, K = string>(dict: Dictionary<V, K>, key: K, value: Readonly<V>): Readonly<V>;
    constructor(allowRevoke?: boolean);
    revoke(key: K): void;
    isDefined(key: K): boolean;
    has(key: K): boolean;
    get(key: K): V | undefined;
    get names(): K[];
    get keys(): IterableIterator<K>;
    get values(): IterableIterator<V>;
    get entries(): IterableIterator<[K, V]>;
}
