import React from 'react';
/**
 * 单个步骤定义。
 *
 * `run` 应当返回任意可被 `JSON.stringify` 序列化的结果（用作执行日志展示）。
 * 抛错时步骤会被标记为 error，并阻断后续步骤的串行执行。
 */
export interface DemoStep {
    id: string;
    label: string;
    description?: string;
    run: () => Promise<unknown>;
    /** 标记为 true 时该步骤会被跳过（既不计入串行，也不在 UI 上禁用单步执行） */
    skip?: boolean;
}
export declare type DemoStepStatus = 'idle' | 'running' | 'success' | 'error' | 'skipped';
export interface DemoStepState {
    status: DemoStepStatus;
    result?: unknown;
    error?: string;
    startedAt?: number;
    finishedAt?: number;
}
export interface DemoStepRunnerProps {
    title: string;
    steps: DemoStep[];
    oneClickLabel?: string;
    /** 串行执行完毕（成功或被错误中断）后回调，参数为最终状态映射 */
    onAllDone?: (states: Record<string, DemoStepState>) => void;
    /**
     * 点击 reset 时额外执行（如 sales.restore），用于清空 OS tempOrder / localStorage。
     * 步骤 UI 状态会在该回调成功后再清空。
     */
    onReset?: () => Promise<void>;
    className?: string;
}
/**
 * 步骤序列执行器：
 *  - 顶部「一键执行」按钮：从第一步开始串行 `await`，中断条件 = 抛错。
 *  - 每一步右侧提供「单步执行」按钮，便于反复点击调试。
 *  - 状态、结果、错误信息聚合渲染在每一步下方；同时维护 `running` 互斥锁，避免并行写。
 */
export declare const DemoStepRunner: React.FC<DemoStepRunnerProps>;
