import type { QueryNeighborEntry, QueryNeighborOptions, QueryNodeStreamRequest, QueryPropertyBag, QueryReadModel } from './QueryReadModelProvider.ts';
import type { QueryNodeSnapshot } from './QueryPlan.ts';
export type QueryReadModelVisibility = {
    readonly match: string | readonly string[];
    readonly expose?: readonly string[];
    readonly redact?: readonly string[];
};
export default class VisibleQueryReadModel implements QueryReadModel {
    #private;
    constructor(params: {
        readonly source: QueryReadModel;
        readonly visibility: QueryReadModelVisibility;
    });
    get stateHash(): string;
    nodes(request: QueryNodeStreamRequest): AsyncIterable<QueryNodeSnapshot>;
    neighbors(nodeId: string, options: QueryNeighborOptions): AsyncIterable<QueryNeighborEntry>;
    nodeProps(nodeId: string): Promise<QueryPropertyBag | null>;
}
