import type { ResourceType } from "@intentic/resources"; import type { Providers } from "./provider.js"; import type { ReadinessProbe } from "./readiness.js"; export type ResolvedInputs = Readonly>; export type Action = "create" | "update" | "noop"; export interface Step { readonly id: string; readonly type: ResourceType; readonly action: Action; readonly reason?: string; } export interface Orphan { readonly id: string; readonly type: ResourceType; } export interface OrphanEntry extends Orphan { readonly inputs: Readonly>; readonly protected?: boolean; } export interface PlanOutcome { readonly steps: readonly Step[]; } export interface ApplyOutcome { readonly steps: readonly Step[]; readonly outputs: Readonly>>>; } export interface PrunedResource { readonly id: string; readonly type: ResourceType; } export interface PruneOutcome { readonly deleted: readonly PrunedResource[]; readonly skipped: readonly PrunedResource[]; } export type EngineEvent = { readonly kind: "node"; readonly phase: "apply" | "plan"; readonly state: "start" | "done"; readonly id: string; readonly type: ResourceType; readonly action?: Action; readonly reason?: string; } | { readonly kind: "readiness"; readonly state: "waiting" | "ready"; readonly id: string; readonly url: string; } | { readonly kind: "iteration"; readonly n: number; readonly converged: boolean; } | { readonly kind: "prune"; readonly state: "deleted" | "skipped"; readonly id: string; readonly type: ResourceType; readonly reason?: "no-delete" | "protected"; } | { readonly kind: "orphan"; readonly id: string; readonly type: ResourceType; }; export interface EngineConfig { readonly providers: Providers; readonly env?: Readonly>; readonly probe?: ReadinessProbe; readonly log?: (message: string) => void; readonly onEvent?: (event: EngineEvent) => void; } //# sourceMappingURL=types.d.ts.map