import type { FactoryRuleHandler } from './types.js'; type EventRuleTable = Readonly | null>>; type BoardEventRuleMap = Readonly | null>>>; /** * Records which events a deployment set explicitly on an integration's `rules`. Those handlers keep * precedence over board event handlers, so integration-level wrappers behave exactly as before. */ export declare function recordExplicitRuleOverrides(rules: T, overrides: Readonly> | undefined): T; /** * Runs a board event handler ahead of the integration default. A board handler that returns no * decision leaves the default in force, so card-independent defaults (filing a new card, * dismissing stale reviews) keep running on every board; `null` switches the default off. */ export declare function composeEventRule(boardRule: FactoryRuleHandler | null | undefined, base: FactoryRuleHandler | null): FactoryRuleHandler | null; /** * Handler that answers one integration event: a handler the deployment set explicitly on the * integration, else the card's board handler composed over the integration default. */ export declare function selectEventRule(rules: EventRuleTable, boardRules: BoardEventRuleMap | undefined, event: E): FactoryRuleHandler | null; /** Whether the deployment set this event explicitly on the integration's `rules`. */ export declare function hasExplicitRuleOverride(rules: object, event: string): boolean; export {}; //# sourceMappingURL=event-rules.d.ts.map