import WorldlineSelector from '../../types/WorldlineSelector.ts';
import ObserverBasis from './ObserverBasis.ts';
import type { ObserverConfig, WorldlineSource } from '../../capabilities/QueryCapability.ts';
export type ObserverPlanFields = {
    readonly name: string;
    readonly match: string | readonly string[];
    readonly expose?: readonly string[];
    readonly redact?: readonly string[];
    readonly basis: ObserverBasis;
    readonly source: WorldlineSelector | WorldlineSource;
};
/** Runtime-backed source/config plan for an observer reading. */
export default class ObserverPlan {
    #private;
    readonly name: string;
    readonly match: string | readonly string[];
    readonly expose: readonly string[] | null;
    readonly redact: readonly string[] | null;
    readonly basis: ObserverBasis;
    readonly sourceKind: WorldlineSource['kind'];
    constructor(fields: ObserverPlanFields);
    get source(): WorldlineSource;
    toConfig(): ObserverConfig;
}
