/** * Terraform HCL projection. * * Consumes Manifest IR (entities + stores + events) + projection config and * emits Terraform HCL resource definitions for one of three cloud providers: * - 'aws' → aws_db_instance, aws_s3_bucket, aws_sns_topic * - 'gcp' → google_sql_database_instance, google_storage_bucket, google_pubsub_topic * - 'supabase' → supabase project notes (database is managed by Supabase) * * Boundary rules (following Prisma/Drizzle/materialized-views conventions): * - Infrastructure interpretation starts HERE. No infrastructure concept * (instance class, region, bucket name, topic name) lives in Manifest * core grammar or IR — all of it arrives via projection options. * - The projection carries NO knowledge of any specific application, * cloud account, or deployment topology. * - Non-persistent store targets (memory, localStorage, durable) are skipped. * - Entities without a store declaration are skipped. * - `computedProperties` are NEVER treated as stored columns. * - Unknown property types produce error diagnostics. No silent fallback. */ import type { IR } from '../../ir'; import type { ProjectionRequest, ProjectionResult, ProjectionTarget } from '../interface'; export declare class TerraformProjection implements ProjectionTarget { readonly name = "terraform"; readonly description: string; readonly surfaces: readonly ["terraform.hcl"]; readonly descriptorMeta: import("..").ProjectionDescriptorMeta; generate(ir: IR, request: ProjectionRequest): ProjectionResult; } //# sourceMappingURL=generator.d.ts.map