/** @jsxImportSource react */ import { type JSX } from "react"; import type { CRUD, Plan } from "../../../Plan.ts"; import type { ApplyEvent, StatusChangeEvent } from "../../Event.ts"; import { type FlattenedItem, type ActionVerb } from "../../NamespaceTree.ts"; import type { ProviderMode } from "../../../ProviderMode.ts"; interface ProgressEventSource { subscribe(listener: (event: ApplyEvent) => void): () => void; } interface PlanTask extends Required> { key: string; message?: string; updatedAt: number; } interface PlanProgressProps { source: ProgressEventSource; plan: Plan; } type PlanItem = CRUD | NonNullable; export type ProgressRow = { key: string; type: "namespace"; id: string; depth: number; action: FlattenedItem["action"]; } | { key: string; type: "resource"; id: string; depth: number; resourceType: string; action: CRUD["action"]; /** For `noop` resources, persisted state status to show instead of `pending`. */ persistedApplyStatus?: "created" | "updated"; /** Resolved provider mode; `undefined` for mode-agnostic providers. */ providerMode?: ProviderMode; /** On mode-switch replacements, the old generation's stamped mode. */ fromProviderMode?: ProviderMode; } | { key: string; type: "task"; id: string; depth: number; actionType: string; action: ActionVerb; }; type ResourceProgressRow = Extract; export declare const buildProgressRows: (plan: Plan) => ProgressRow[]; export declare function toPlanTask(id: string, planItem: PlanItem): PlanTask; export declare function toPlanTask(row: ResourceProgressRow): PlanTask; export declare function PlanProgress(props: PlanProgressProps): JSX.Element; export {}; //# sourceMappingURL=PlanProgress.d.ts.map