import ObserverBasis from './ObserverBasis.ts';
import ObserverEmission from './ObserverEmission.ts';
import type { QueryPropertyBag } from './QueryReadModelProvider.ts';
export type ObserverAccumulationFields = {
    readonly basis: ObserverBasis;
    readonly nodeCount: number;
    readonly edgeCount: number;
    readonly propertyKeys: readonly string[];
};
/** Immutable accumulation state for a structural observer fold. */
export default class ObserverAccumulation {
    readonly basis: ObserverBasis;
    readonly nodeCount: number;
    readonly edgeCount: number;
    readonly propertyKeys: readonly string[];
    constructor(fields: ObserverAccumulationFields);
    static empty(basis: ObserverBasis): ObserverAccumulation;
    includeNode(props: QueryPropertyBag): ObserverAccumulation;
    includeEdges(edgeCount: number): ObserverAccumulation;
    emit(): ObserverEmission;
}
