import type { ModuleLifecycleContext } from "../../../contracts/module-contract.js";
import type { PlanningStateEventKindV1, PlanningStateEventV1 } from "../task-state-events/planning-event-payloads.js";
/** Planning domains that publish/apply on git-event-log (Phase 119 + 120). */
export declare const ALL_PLANNING_SYNC_DOMAINS: readonly ["phase_catalog", "workspace_status", "phase_notes", "phase_note_suggestions", "ideas", "module_state"];
export type PlanningSyncDomainId = (typeof ALL_PLANNING_SYNC_DOMAINS)[number];
/** Raw config array from effective config (undefined when omitted). */
export declare function readPlanningSyncDomainsConfig(config?: Record<string, unknown> | null): PlanningSyncDomainId[] | undefined;
export declare function resolveEnabledPlanningSyncDomains(ctx: Pick<ModuleLifecycleContext, "effectiveConfig">): PlanningSyncDomainId[];
export declare function isPlanningSyncDomainEnabled(ctx: Pick<ModuleLifecycleContext, "effectiveConfig">, domainId: PlanningSyncDomainId | string): boolean;
export declare function planningEventKindToSyncDomain(kind: PlanningStateEventKindV1): PlanningSyncDomainId;
export declare function isPlanningEventSyncEnabled(ctx: Pick<ModuleLifecycleContext, "effectiveConfig">, event: Pick<PlanningStateEventV1, "kind">): boolean;
export declare function filterPlanningEventsByEnabledDomains(ctx: Pick<ModuleLifecycleContext, "effectiveConfig">, events: PlanningStateEventV1[]): PlanningStateEventV1[];
/** True when git-event-log authority and at least one planning domain publishes for this command. */
export declare function isPlanningGitSyncPublishActive(ctx: ModuleLifecycleContext, domainId: PlanningSyncDomainId): boolean;
export declare function isAnyPlanningEventGitSyncPublishActive(ctx: ModuleLifecycleContext, events: PlanningStateEventV1[]): boolean;
export declare function enabledPlanningSyncDomainSet(ctx: Pick<ModuleLifecycleContext, "effectiveConfig">): ReadonlySet<PlanningSyncDomainId>;
