import type { World } from '#compiled/@workflow/world/index.js';
import type { CryptoKey } from '../encryption.js';
export interface StepExecutorParams {
    world: World;
    workflowRunId: string;
    /** Deployment that owns the workflow run, for forwarded writable streams. */
    workflowDeploymentId?: string;
    workflowName: string;
    workflowStartedAt: number;
    stepId: string;
    stepName: string;
    encryptionKey?: CryptoKey;
    /**
     * The workflow run's specVersion, used to gate payload compression.
     * Step outputs/errors are only gzip-compressed when the run is marked
     * as possibly containing compressed payloads (specVersion >= 5).
     */
    runSpecVersion?: number;
}
/**
 * Result of a step execution attempt. The caller decides what to do
 * based on the result type (e.g., queue workflow continuation, replay inline, etc.).
 */
export type StepExecutionResult = {
    type: 'completed';
    hasPendingOps?: boolean;
} | {
    type: 'failed';
} | {
    type: 'retry';
    timeoutSeconds: number;
} | {
    type: 'skipped';
} | {
    type: 'gone';
} | {
    type: 'throttled';
    timeoutSeconds: number;
};
/**
 * Executes a single step: creates step_started event, hydrates input,
 * runs the step function, creates step_completed/step_failed/step_retrying events.
 *
 * Does NOT queue workflow continuation messages — the caller decides what to do next.
 * Used by both the V1 step handler and the V2 combined handler.
 */
export declare function executeStep(params: StepExecutorParams): Promise<StepExecutionResult>;
//# sourceMappingURL=step-executor.d.ts.map