import { Effect, Schema } from "effect";
import type { ActionMap, Config } from "../driver/types.js";
import type { ReplayStepContext, TraceReplayError } from "./replay-errors.js";
import type { TraceStateRecord } from "./trace-state.js";
export interface ReplayStep {
    readonly action: string;
    readonly nondetPicks: ReadonlyMap<string, unknown>;
    readonly specState: unknown;
}
/** Decode all data needed to dispatch and check one trace state. */
export declare const decodeReplayStep: (state: TraceStateRecord, config: Config, context: ReplayStepContext, includeSpecState?: boolean) => Effect.Effect<ReplayStep, TraceReplayError>;
export declare const buildPicksDecoder: (picksShape: Schema.Struct<{
    readonly [key: string]: Schema.Codec<unknown, unknown, never, unknown>;
}>) => (rawPicks: unknown) => Effect.Effect<{
    readonly [x: string]: unknown;
}, Schema.SchemaError, never>;
export type PicksDecoder = ReturnType<typeof buildPicksDecoder>;
export declare const buildPicksDecoders: <E, R>(actions: ActionMap<E, R>) => ReadonlyMap<string, PicksDecoder>;
//# sourceMappingURL=replay-actions.d.ts.map