import { Observable, Observer } from 'rxjs'; import { State } from './state'; import { KeyFunc, ListChanges } from './types/keyed-lists'; import { Change } from './types/changes'; export declare class KeyedState extends Observable implements Observer { readonly state: State; readonly keyfunc: KeyFunc; private _changes; private _changesub; private _watcher; private _value; constructor(state: State, keyfunc: KeyFunc); next(t: T[] | undefined): void; error(err: any): void; complete(): void; get value(): T[]; set value(t: T[]); key(key: number | string): State; keyDownstream(key: number | string, current: () => T | undefined): Observable<{ value: T; trace: any; }>; keyUpstream(key: number | string): Observer>; index(key: number | string): Observable; changes(): Observable>; } export declare function keyed(state: State, keyfunc: KeyFunc): KeyedState;