import { IEventEmitter } from "./eventEmitter"; type AtomListener = (value: T) => void; export interface IAtom { on(listener: AtomListener): void; off(listener: AtomListener): void; emit(value: T): void; set(value: T): void; get(): T; removeAllListeners(): void; } export declare class Atom implements IAtom { private value; private listeners; constructor(initialValue: T); on(listener: AtomListener): void; off(listener: AtomListener): void; emit(value: T): void; set(value: T): void; get(): T; removeAllListeners(): void; } export declare class ReactiveMap extends Map implements IEventEmitter { private emitter; emit(event: string, data: V): void; set(key: string, value: V): this; on(key: string, listener: (value: V) => void): void; off(key: string, listener: (value: V) => void): void; once(key: string, listener: (value: V) => void): void; removeAllListeners(key?: string): void; } export declare class ReactiveSet extends Set implements IEventEmitter { private emitter; emit(event: "add" | "delete", data: T): void; add(value: T): this; delete(value: T): boolean; on(event: "add" | "delete", listener: (value: T) => void): void; off(event: "add" | "delete", listener: (value: T) => void): void; once(event: "add" | "delete", listener: (value: T) => void): void; removeAllListeners(event?: "add" | "delete"): void; } export declare class ReactiveArray extends Array implements IEventEmitter { private emitter; emit(event: string, data: number): void; push(...items: T[]): number; pop(): T | undefined; splice(start: number, deleteCount?: number, ...items: T[]): T[]; set(index: number, value: T): void; on(event: "push" | "pop" | "splice" | "set", listener: (index: number) => void): void; off(event: "push" | "pop" | "splice" | "set", listener: (index: number) => void): void; once(event: "push" | "pop" | "splice" | "set", listener: (index: number) => void): void; removeAllListeners(event?: "push" | "pop" | "splice" | "set"): void; } export {}; //# sourceMappingURL=reactiveTypes.d.ts.map