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