type BivariantCallback = { callback(...args: Args): Return; }["callback"]; export type PipelineCallbackFields = { onPlanResolved?: BivariantCallback<[summary: unknown]>; onTaskStart?: BivariantCallback<[progress: unknown]>; onTaskComplete?: BivariantCallback<[progress: unknown]>; }; export type ExperimentCallbackFields = { onExperimentStart?: BivariantCallback<[index: number, agent: string]>; onBaselineCollected?: BivariantCallback<[baseline: Record]>; onMetricResult?: BivariantCallback<[metric: unknown, result: unknown]>; onCommit?: BivariantCallback<[commitHash: string]>; onReset?: BivariantCallback<[targetHash: string]>; onExperimentComplete?: BivariantCallback<[index: number, entry: unknown]>; }; export type LoopCallbacks = { runRole?: (role: "builder" | "inspector" | "superintendent" | "owner", name: string | undefined, run: () => Promise) => Promise; onBuilderStart?: () => void; onBuilderComplete?: BivariantCallback<[result: unknown]>; onBuilderFailed?: BivariantCallback<[error: Error]>; onInspectorStart?: BivariantCallback<[name: string]>; onInspectorComplete?: BivariantCallback<[result: unknown]>; onInspectorFailed?: BivariantCallback<[name: string, error: Error]>; onSuperintendentStart?: () => void; onSuperintendentComplete?: BivariantCallback<[result: unknown]>; onOwnerStart?: () => void; onOwnerComplete?: BivariantCallback<[result: unknown]>; onRoundComplete?: BivariantCallback<[round: number]>; onLoopComplete?: BivariantCallback<[state: unknown]>; onStateChange?: BivariantCallback<[state: unknown]>; shouldPause?: () => boolean; shouldStop?: () => boolean; }; export declare function mergePipelineCallbacks(user: PipelineCallbackFields | undefined, added: PipelineCallbackFields | undefined): PipelineCallbackFields | undefined; export declare function mergeExperimentCallbacks(user: ExperimentCallbackFields | undefined, added: ExperimentCallbackFields | undefined): ExperimentCallbackFields | undefined; export declare function mergeLoopCallbacks(user: LoopCallbacks | undefined, added: LoopCallbacks | undefined): LoopCallbacks | undefined; export {};