export type InfrastructureProvider = { name: string; deploy(spec: InfrastructureSpec): Promise; destroy(spec: InfrastructureSpec): Promise; getStatus(spec: InfrastructureSpec): Promise; detectDrift(spec: InfrastructureSpec): Promise; }; export type InfrastructureSpec = { provider: string; template: string; parameters?: Record; region?: string; tags?: Record; }; export type DeploymentResult = { success: boolean; outputs?: Record; resources: DeployedResource[]; durationMs: number; }; export type DeployedResource = { id: string; type: string; name: string; status: "creating" | "created" | "failed"; properties?: Record; }; export type DeploymentStatus = { status: "pending" | "in_progress" | "completed" | "failed" | "destroyed"; resources: DeployedResource[]; lastUpdated: Date; }; export type DriftResult = { hasDrift: boolean; changes: DriftChange[]; lastChecked: Date; }; export type DriftChange = { resourceId: string; changeType: "create" | "update" | "delete"; attribute?: string; oldValue?: unknown; newValue?: unknown; }; export declare class TerraformProvider implements InfrastructureProvider { readonly name = "terraform"; constructor(_config: { binaryPath?: string; workingDir?: string; }); deploy(spec: InfrastructureSpec): Promise; destroy(spec: InfrastructureSpec): Promise; getStatus(_spec: InfrastructureSpec): Promise; detectDrift(_spec: InfrastructureSpec): Promise; } export declare class CloudFormationProvider implements InfrastructureProvider { readonly name = "cloudformation"; constructor(_config: { region: string; profile?: string; }); deploy(spec: InfrastructureSpec): Promise; destroy(spec: InfrastructureSpec): Promise; getStatus(_spec: InfrastructureSpec): Promise; detectDrift(_spec: InfrastructureSpec): Promise; } export declare class ARMProvider implements InfrastructureProvider { readonly name = "arm"; constructor(_config: { subscriptionId: string; tenantId: string; clientId: string; clientSecret: string; }); deploy(spec: InfrastructureSpec): Promise; destroy(spec: InfrastructureSpec): Promise; getStatus(_spec: InfrastructureSpec): Promise; detectDrift(_spec: InfrastructureSpec): Promise; } export declare class InfrastructureManager { private readonly providers; constructor(providers?: InfrastructureProvider[]); private initializeDefaultProviders; deploy(spec: InfrastructureSpec): Promise; destroy(spec: InfrastructureSpec): Promise; getStatus(spec: InfrastructureSpec): Promise; detectDrift(spec: InfrastructureSpec): Promise; registerProvider(provider: InfrastructureProvider): void; getProvider(name: string): InfrastructureProvider | undefined; listProviders(): string[]; } //# sourceMappingURL=infrastructure.d.ts.map