import BoundedSupportRule from './BoundedSupportRule.ts';
export type CausalIndexFamily = 'entity-patch' | 'neighborhood-adjacency' | 'global-discovery';
export type CausalIndexPlanPosture = 'available' | 'composite' | 'unsupported';
export type CausalIndexPlanFields = {
    readonly supportRule: BoundedSupportRule;
    readonly posture: CausalIndexPlanPosture;
    readonly families: readonly CausalIndexFamily[];
    readonly reason: string;
    readonly requiredEntityIds?: readonly string[];
};
/** Index-selection posture for a bounded public read support rule. */
export default class CausalIndexPlan {
    readonly supportRule: BoundedSupportRule;
    readonly posture: CausalIndexPlanPosture;
    readonly families: readonly CausalIndexFamily[];
    readonly reason: string;
    readonly requiredEntityIds: readonly string[];
    constructor(fields: CausalIndexPlanFields);
    static fromSupportRule(rule: BoundedSupportRule): CausalIndexPlan;
    canUseCausalIndex(): boolean;
    requiresGlobalScan(): boolean;
}
