import { Callback } from './Types'; import { Transform } from 'stronger-typed-streams'; export { Duplex, Writable, Transform, Readable } from 'stronger-typed-streams'; export interface JoinStorage { find(qry: Partial, next: Callback): void; add(t: T, next: (e?: null) => void): any; } export declare class MemoryJoinStorage implements JoinStorage { private obs; find(qry: Partial, next: Callback): void; add(t: T, next: (e?: null) => void): void; } export interface KVStore { get(k: K, next: Callback): void; add(k: K, v: V, next: (e?: null) => void): any; } export declare class MemoryKVStore implements KVStore { private data; get(k: K, next: Callback): void; add(k: K, v: V, next: (e?: null) => void): void; } export declare enum LeftOrRight { Left = 1, Right = 2, } export interface LeftOrRightDecider { (lOrR: L | R): LeftOrRight.Left | LeftOrRight.Right; } export interface JoinTransformOut { l: L[]; r: R[]; } export interface JTQry { lQry: any; rQry: any; } export declare class JoinTransform extends Transform> { private leftOrRight; private leftStorage; private rightStorage; private lToQrys; private rToQrys; constructor(leftOrRight: LeftOrRightDecider, lToQrys: (l: L) => JTQry, rToQrys: (r: R) => JTQry, opts: any); doQry({lQry, rQry}: JTQry, next: Callback>): void; _transform(a: L | R, encoding: any, cb: any): void; } export declare class InnerJoinTransform extends Transform, O> { private joinStorage; private merge; private indexer; constructor(merge: (l: L, r: R) => O, indexer: (o: O) => K, opts: any); _transform(a: JoinTransformOut, encoding: any, cb: any): void; }