import { StateIdentifier, StateMachineConfig } from "./stateMachine";
/**
 * Result of a step validation
 * Can be a boolean, a string (single error), or an array of strings (multiple errors)
 */
export type ValidationResult = boolean | string | string[];
/**
 * Enhanced configuration that includes validation predicates for each step
 */
export interface ValidatedStateMachineConfig<TData> extends StateMachineConfig<TData> {
    /** Map of states to validation functions */
    validation?: Record<StateIdentifier, (data: TData) => ValidationResult | Promise<ValidationResult>>;
}
/**
 * Helper to validate the data for a specific state
 */
export declare function validateStep<TData>(config: ValidatedStateMachineConfig<TData>, state: StateIdentifier, data: TData): Promise<{
    success: boolean;
    errors?: string[];
}>;
