import ts from 'typescript'; import type { BucketAccelerateStatus, BucketVersioningStatus, ServerSideEncryptionConfiguration } from '@aws-sdk/client-s3'; export type Permission = 'read' | 'write' | 'create' | 'delete'; export interface StorageTriggers { readonly onUpload?: string; readonly onDelete?: string; } export interface FunctionAccess { readonly functionName: string; readonly permissions: readonly Permission[]; } export interface AccessPatterns { readonly auth?: readonly Permission[]; readonly guest?: readonly Permission[]; readonly groups?: Readonly>; readonly functions?: readonly FunctionAccess[]; } export interface S3RenderOptions { readonly name: string; readonly access?: AccessPatterns; readonly triggers?: StorageTriggers; readonly bucketName: string; readonly accelerateStatus?: BucketAccelerateStatus; readonly versioningStatus?: BucketVersioningStatus; readonly encryption?: ServerSideEncryptionConfiguration; } export declare class S3Renderer { render(opts: S3RenderOptions): ts.NodeArray; private renderImportStatements; private renderBackendTypeImport; private renderDefineStorageExport; private renderPostRefactor; private renderApplyEscapeHatches; private renderEncryption; private createCfnBucketDeclaration; private renderName; private renderAccessPatterns; private renderTriggers; private buildAccessProperty; private createAllowPattern; private createResourcePattern; } //# sourceMappingURL=s3.renderer.d.ts.map