import type { RuntimeEventBus } from '../events/index.js';
import type { Constraint } from '../../agents/completion-report.js';
import type { WrfcState } from '../../agents/wrfc-types.js';
import type { EmitterContext } from './index.js';
export declare function emitWorkflowChainCreated(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    chainId: string;
    task: string;
}): void;
export declare function emitWorkflowStateChanged(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    chainId: string;
    from: WrfcState;
    to: WrfcState;
}): void;
export declare function emitWorkflowReviewCompleted(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    chainId: string;
    score: number;
    passed: boolean;
    constraintsSatisfied?: number | undefined;
    constraintsTotal?: number | undefined;
    unsatisfiedConstraintIds?: string[] | undefined;
}): void;
export declare function emitWorkflowFixAttempted(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    chainId: string;
    attempt: number;
    maxAttempts: number;
    targetConstraintIds?: string[];
}): void;
export declare function emitWorkflowGateResult(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    chainId: string;
    gate: string;
    passed: boolean;
}): void;
export declare function emitWorkflowChainPassed(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    chainId: string;
}): void;
export declare function emitWorkflowChainFailed(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    chainId: string;
    reason: string;
}): void;
export declare function emitWorkflowAutoCommitted(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    chainId: string;
    commitHash?: string | undefined;
}): void;
export declare function emitWorkflowCascadeAborted(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    chainId: string;
    reason: string;
}): void;
/**
 * Emit WORKFLOW_CONSTRAINTS_ENUMERATED after WRFC captures a chain's effective constraints.
 * WRFC internals should prefer the thin wrapper in agents/wrfc-runtime-events.ts so
 * session and chain context stay consistent.
 */
export declare function emitWorkflowConstraintsEnumerated(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    chainId: string;
    constraints: Constraint[];
}): void;
//# sourceMappingURL=workflows.d.ts.map