import BoundedSupportRule from './BoundedSupportRule.ts';
import CausalIndexPlan from './CausalIndexPlan.ts';
export type SupportFragmentMaterializationPosture = 'support-fragment' | 'support-fragment-with-index-fill' | 'global-fallback';
export type SupportFragmentPlanFields = {
    readonly supportRule: BoundedSupportRule;
    readonly causalIndexPlan: CausalIndexPlan;
    readonly posture: SupportFragmentMaterializationPosture;
    readonly scopeKey: string;
    readonly requiredEntityIds?: readonly string[];
};
/** Support-scoped fragment materialization contract for a bounded read plan. */
export default class SupportFragmentPlan {
    readonly supportRule: BoundedSupportRule;
    readonly causalIndexPlan: CausalIndexPlan;
    readonly posture: SupportFragmentMaterializationPosture;
    readonly scopeKey: string;
    readonly requiredEntityIds: readonly string[];
    constructor(fields: SupportFragmentPlanFields);
    static fromSupportRule(rule: BoundedSupportRule): SupportFragmentPlan;
    static fromSupportAndIndex(fields: {
        readonly supportRule: BoundedSupportRule;
        readonly causalIndexPlan: CausalIndexPlan;
    }): SupportFragmentPlan;
    canMaterializeSupportFragment(): boolean;
    requiresFullGraphFallback(): boolean;
    fragmentKeyForCoordinate(coordinateRef: string): string;
}
