/** * Lightweight Bicep synthesizer for generating Bicep templates from TypeScript. * Provides type-safe Bicep generation without requiring external dependencies. */ export declare enum BicepParameterType { STRING = "string", INT = "int", BOOL = "bool", OBJECT = "object", ARRAY = "array" } export declare enum BicepExtension { MICROSOFT_GRAPH_STABLE = "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:1.0.0", KUBERNETES_STABLE = "Microsoft.KubernetesConfiguration/stable" } export interface BicepParameter { type: BicepParameterType; description?: string; defaultValue?: any; allowedValues?: any[]; } export interface BicepResource { type: string; apiVersion: string; name?: string; kind?: string; location?: string; properties?: Record; dependsOn?: string[]; comment?: string; linterSuppressions?: string[]; propertySuppressions?: Record; [key: string]: any; } export interface BicepOutput { type: BicepParameterType; value: string; } export interface BicepMetadata { name?: string; description?: string; version?: string; cloudformation?: { stackArn?: string; }; } export declare class BicepTemplate { private parameters; private resources; private outputs; private extensions; private metadata; addStringParameter(name: string, description?: string, defaultValue?: string): void; addIntParameter(name: string, description?: string, defaultValue?: number): void; addBoolParameter(name: string, description?: string, defaultValue?: boolean): void; addObjectParameter(name: string, description?: string, defaultValue?: Record): void; addArrayParameter(name: string, description?: string, defaultValue?: any[]): void; addExtension(extension: BicepExtension): void; setMetadata(metadata: BicepMetadata): void; addResource(name: string, resource: BicepResource): void; addStringOutput(name: string, value: string): void; addIntOutput(name: string, value: string): void; addBoolOutput(name: string, value: string): void; addObjectOutput(name: string, value: string): void; addArrayOutput(name: string, value: string): void; synthesize(): string; private formatValue; private formatObject; private isEmptyValue; private toCamelCase; private toPascalCase; private getGuidComment; private getResourceSection; private formatSectionHeader; }