import type { Row } from '../../../zero-protocol/src/data.ts';
import type { Change } from './change.ts';
import type { SourceSchema } from './schema.ts';
import type { Stream } from './stream.ts';
import { type Node } from './data.ts';
import type { CompoundKey } from '../../../zero-protocol/src/ast.ts';
export type JoinChangeOverlay = {
    change: Change;
    position: Row | undefined;
};
export declare function generateWithOverlay(stream: Stream<Node>, overlay: Change, schema: SourceSchema): Stream<Node>;
export declare function rowEqualsForCompoundKey(a: Row, b: Row, key: CompoundKey): boolean;
export declare function isJoinMatch(parent: Row, parentKey: CompoundKey, child: Row, childKey: CompoundKey): boolean;
//# sourceMappingURL=join-utils.d.ts.map