export declare class Dictionary<TKey, TValue> {
    private items;
    add(key: TKey, value: TValue): void;
    get(key: TKey): TValue | undefined;
    remove(key: TKey): void;
    containsKey(key: TKey): boolean;
    keys(): TKey[];
    values(): TValue[];
    count(): number;
}
export declare class DebouncedEventHandler<T> {
    private delay;
    private eventHandler;
    private timerId;
    constructor(delay: number, eventHandler: (event: T) => void);
    handleEvent: (event: T) => void;
}
/**
 * Interface for components that hold resources requiring explicit cleanup.
 * All viewer components implement this for type-safe cascading disposal.
 */
export interface Disposable {
    dispose(): void;
}
