import { BehaviorSubject, Observable } from "rxjs"; type BASE_EVENTS = 'ADD' | 'REMOVE' | 'UPDATE'; export declare class BaseEvent { item: A; event: B | BASE_EVENTS; args?: any | undefined; constructor(item: A, event: B | BASE_EVENTS, args?: any | undefined); } export declare class BaseSimpleEvent extends BaseEvent { } export type EventClass> = { new (item: OBJ, event: EV | BASE_EVENTS, args?: any): C; }; export declare class ArrayStore> { private eventClazz; private dependsOn?; private _equalOperator; private _state; private _subject; private _observable; private _restSubj; private _restObs; constructor(eventClazz: EventClass, initalVal?: OBJ[], dependsOn?: ArrayStore | undefined); set values(newVals: OBJ[]); get values(): OBJ[]; get events(): Observable; get state(): BehaviorSubject; get restState(): Observable; setEqualOperator(op: (a: OBJ | undefined, b: OBJ | undefined) => boolean): ArrayStore; add(o: OBJ): void; addAll(a: OBJ[]): this; set(o: OBJ): void; setAll(a: OBJ[]): this; contains(d: OBJ): boolean; remove(o: OBJ): void; emmit(o: OBJ, event: EV | BASE_EVENTS, args?: any): void; close(): void; } export declare class Store> { private eventClazz; private _state; private _subject; private _observable; private _restSubj; private _restObs; private _args; private _equalOperator; constructor(eventClazz: EventClass, inital?: OBJ); set value(newVal: OBJ | undefined); get value(): OBJ | undefined; /** * Get the state, will fire immeidatley on subscribe even if null */ get state(): Observable; /** * The resting state, wont fire if already set, only fires if changes after subscribed to */ get restState(): Observable; /** * Get the state, will fire immeidatley on subscribe even if null */ get readyState(): Observable; /** * Return first non-null value */ get onReady(): Observable; get events(): Observable; setWithArgs(o: OBJ, args: any): void; emmit(event: EV | BASE_EVENTS, args?: any, o?: OBJ): void; close(): void; exists(fn: (o: OBJ) => boolean): boolean; setEqualOperator(op: (a: OBJ | undefined, b: OBJ | undefined) => boolean): Store; } export {};