export type StepKind = 'auto' | 'human_gate' | 'choice' | 'info' | 'input' | 'done' | 'error'; export interface StepView { kind: StepKind; prompt: string; options?: { value: string; label: string; note?: string; }[]; collect?: { field: string; desc: string; secret?: boolean; }[]; context?: Record; } export interface PlatformFlow { resumeStep: (progress: Progress | null) => Step; viewForStep: (step: Step, progress: Progress, ctx?: Record) => StepView; applyInput: (step: Step, progress: Progress, input: Input) => Progress; runEffect: (step: Step, progress: Progress, deps: unknown) => Promise; } /** Runtime guard used by tests + frontends to validate a view-model. */ export declare function isStepView(v: unknown): v is StepView;