/**
 * Trigger processing for repo-based AILF tasks.
 *
 * Reads .ailf/config.yaml, determines the current execution context
 * (PR, main merge, schedule, manual), and resolves which trigger
 * config applies. This drives whether the pipeline runs in validate-only
 * mode or full eval mode, and whether results are blocking.
 *
 * @see docs/archive/exec-plans/tasks-as-content/phase-4-repo-based-tasks.md
 */
export type TriggerContext = {
    type: "pr";
    branch: string;
    changedFiles?: string[];
} | {
    type: "main";
} | {
    type: "schedule";
} | {
    type: "manual";
};
export interface ResolvedTrigger {
    /** Whether this trigger matched the current context */
    matched: boolean;
    /** Eval mode: validate-only (parse checks only) or eval (full run) */
    mode: "eval" | "validate-only";
    /** Whether failing scores should block the PR/merge */
    blocking: boolean;
    /** Whether to notify (e.g., post PR comment) */
    notify: boolean;
    /** Whether to run comparison against baseline */
    compare: boolean;
    /** Path filters — only trigger when these paths changed */
    paths?: string[];
    /** Cron schedule (only for schedule triggers) */
    cron?: string;
}
/**
 * Load and resolve the trigger configuration for the current context.
 *
 * @param repoRoot - Root of the external repo (contains .ailf/)
 * @param context - The current execution context (PR, main, schedule, manual)
 * @returns The resolved trigger config, or a default (eval, non-blocking)
 */
export declare function resolveTrigger(repoRoot: string, context: TriggerContext): ResolvedTrigger;
/**
 * Detect the current trigger context from environment variables.
 *
 * Reads GitHub Actions env vars to determine if we're in a PR,
 * on the main branch, running on schedule, or manual dispatch.
 */
export declare function detectTriggerContext(): TriggerContext;
