export type ConfigurationScope = "system" | "project" | "plan" | "task" | "run";
export type OverrideStrategy = "replace" | "merge-map" | "append-unique" | "deny-lower-override" | "custom";
export type EffectCategory = "presentation-only" | "future-runs-only" | "replan/readiness-affecting" | "restart/reload-required" | "security/approval-sensitive" | "immutable-after-creation";
export interface ConfigurationDefinition<T> {
    readonly key: string;
    readonly schemaVersion: number;
    readonly title: string;
    readonly description: string;
    readonly defaultValue?: T;
    readonly allowedScopes: readonly ConfigurationScope[];
    readonly overrideStrategy: OverrideStrategy;
    readonly mutable: boolean;
    readonly effectCategory: EffectCategory;
    readonly sensitiveReferenceOnly: boolean;
}
export interface ConfigurationOverride<T> {
    readonly definitionKey: string;
    readonly scopeType: ConfigurationScope;
    readonly scopeId: string;
    readonly value: T;
    readonly resourceRevision: number;
    readonly setBy: string;
    readonly setAt: string;
}
export interface EffectiveConfiguration<T> {
    readonly value: T;
    readonly sourceScope: ConfigurationScope;
    readonly sourceId: string;
    readonly provenanceChain: readonly {
        scopeType: ConfigurationScope;
        scopeId: string;
    }[];
    readonly lockedReason?: string;
}
//# sourceMappingURL=configuration.d.ts.map