import type { RequestContext } from '../../di/index.js';
import type { MastraScorers } from '../../evals/index.js';
import type { PubSub } from '../../events/pubsub.js';
import type { ObservabilityContext } from '../../observability/index.js';
import type { DynamicArgument } from '../../types/index.js';
import type { DefaultExecutionEngine } from '../default.js';
import type { Step } from '../step.js';
import type { ExecutionContext, OutputWriter, RestartExecutionParams, SerializedStepFlowEntry, StepExecutionResult, StepResult, TimeTravelExecutionParams } from '../types.js';
export interface ExecuteStepParams extends ObservabilityContext {
    workflowId: string;
    runId: string;
    resourceId?: string;
    step: Step<string, any, any, any, any, any, any>;
    stepResults: Record<string, StepResult<any, any, any, any>>;
    executionContext: ExecutionContext;
    restart?: RestartExecutionParams;
    timeTravel?: TimeTravelExecutionParams;
    resume?: {
        steps: string[];
        resumePayload: any;
        label?: string;
        forEachIndex?: number;
    };
    prevOutput: any;
    pubsub: PubSub;
    abortController: AbortController;
    requestContext: RequestContext;
    skipEmits?: boolean;
    outputWriter?: OutputWriter;
    disableScorers?: boolean;
    serializedStepGraph: SerializedStepFlowEntry[];
    iterationCount?: number;
    perStep?: boolean;
}
export declare function executeStep(engine: DefaultExecutionEngine, params: ExecuteStepParams): Promise<StepExecutionResult>;
export interface RunScorersParams extends ObservabilityContext {
    engine: DefaultExecutionEngine;
    scorers: DynamicArgument<MastraScorers>;
    runId: string;
    input: any;
    output: any;
    requestContext: RequestContext;
    workflowId: string;
    stepId: string;
    disableScorers?: boolean;
}
export declare function runScorersForStep(params: RunScorersParams): Promise<void>;
/**
 * Emit step result events (suspended, result, finish).
 * Shared between Default and Inngest execution engines.
 */
export declare function emitStepResultEvents(params: {
    stepId: string;
    stepCallId?: string;
    execResults: StepResult<any, any, any, any>;
    pubsub: PubSub;
    runId: string;
}): Promise<void>;
//# sourceMappingURL=step.d.ts.map