@stacksjs/ts-cloud 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/aws/acm.d.ts +215 -0
  2. package/dist/aws/application-autoscaling.d.ts +345 -0
  3. package/dist/aws/bedrock.d.ts +2672 -0
  4. package/dist/aws/client.d.ts +181 -0
  5. package/dist/aws/cloudformation.d.ts +187 -0
  6. package/dist/aws/cloudfront.d.ts +416 -0
  7. package/dist/aws/cloudwatch-logs.d.ts +70 -0
  8. package/dist/aws/comprehend.d.ts +616 -0
  9. package/dist/aws/connect.d.ts +533 -0
  10. package/dist/aws/deploy-imap.d.ts +26 -0
  11. package/dist/aws/dynamodb.d.ts +270 -0
  12. package/dist/aws/ec2.d.ts +545 -0
  13. package/dist/aws/ecr.d.ts +240 -0
  14. package/dist/aws/ecs.d.ts +267 -0
  15. package/dist/aws/efs.d.ts +36 -0
  16. package/dist/aws/elasticache.d.ts +112 -0
  17. package/dist/aws/elbv2.d.ts +389 -0
  18. package/dist/aws/email.d.ts +260 -0
  19. package/dist/aws/eventbridge.d.ts +197 -0
  20. package/dist/aws/iam.d.ts +1013 -0
  21. package/dist/aws/imap-server.d.ts +298 -0
  22. package/dist/aws/index.d.ts +53 -0
  23. package/dist/aws/kendra.d.ts +831 -0
  24. package/dist/aws/lambda.d.ts +319 -0
  25. package/dist/aws/opensearch.d.ts +121 -0
  26. package/dist/aws/personalize.d.ts +586 -0
  27. package/dist/aws/polly.d.ts +243 -0
  28. package/dist/aws/rds.d.ts +346 -0
  29. package/dist/aws/rekognition.d.ts +691 -0
  30. package/dist/aws/route53-domains.d.ts +161 -0
  31. package/dist/aws/route53.d.ts +330 -0
  32. package/dist/aws/s3.d.ts +535 -0
  33. package/dist/aws/scheduler.d.ts +224 -0
  34. package/dist/aws/secrets-manager.d.ts +267 -0
  35. package/dist/aws/ses.d.ts +441 -0
  36. package/dist/aws/setup-phone.d.ts +1 -0
  37. package/dist/aws/setup-sms.d.ts +116 -0
  38. package/dist/aws/sms.d.ts +477 -0
  39. package/dist/aws/smtp-server.d.ts +108 -0
  40. package/dist/aws/sns.d.ts +224 -0
  41. package/dist/aws/sqs.d.ts +107 -0
  42. package/dist/aws/ssm.d.ts +311 -0
  43. package/dist/aws/sts.d.ts +21 -0
  44. package/dist/aws/support.d.ts +139 -0
  45. package/dist/aws/test-imap.d.ts +15 -0
  46. package/dist/aws/textract.d.ts +477 -0
  47. package/dist/aws/transcribe.d.ts +79 -0
  48. package/dist/aws/translate.d.ts +424 -0
  49. package/dist/aws/voice.d.ts +361 -0
  50. package/dist/bin/cli.js +4500 -809
  51. package/dist/config.d.ts +5 -0
  52. package/dist/deploy/index.d.ts +6 -0
  53. package/dist/deploy/static-site-external-dns.d.ts +70 -0
  54. package/dist/deploy/static-site.d.ts +110 -0
  55. package/dist/dns/cloudflare.d.ts +74 -0
  56. package/dist/dns/godaddy.d.ts +63 -0
  57. package/dist/dns/index.d.ts +67 -0
  58. package/dist/dns/porkbun.d.ts +43 -0
  59. package/dist/dns/route53-adapter.d.ts +67 -0
  60. package/dist/dns/types.d.ts +100 -0
  61. package/dist/dns/validator.d.ts +105 -0
  62. package/dist/generators/index.d.ts +4 -0
  63. package/dist/generators/infrastructure.d.ts +115 -0
  64. package/dist/index.d.ts +9 -165
  65. package/dist/index.js +24067 -6430
  66. package/dist/push/apns.d.ts +140 -0
  67. package/dist/push/fcm.d.ts +205 -0
  68. package/dist/push/index.d.ts +44 -0
  69. package/dist/security/pre-deploy-scanner.d.ts +97 -0
  70. package/dist/ssl/acme-client.d.ts +133 -0
  71. package/dist/ssl/index.d.ts +6 -0
  72. package/dist/ssl/letsencrypt.d.ts +96 -0
  73. package/dist/utils/cli.d.ts +121 -0
  74. package/dist/validation/index.d.ts +4 -0
  75. package/dist/validation/template.d.ts +27 -0
  76. package/package.json +6 -6
@@ -0,0 +1,240 @@
1
+ /**
2
+ * AWS ECR (Elastic Container Registry) Client
3
+ * Manages Docker container image repositories using direct API calls
4
+ */
5
+ export interface Repository {
6
+ repositoryArn?: string;
7
+ registryId?: string;
8
+ repositoryName?: string;
9
+ repositoryUri?: string;
10
+ createdAt?: string;
11
+ imageTagMutability?: 'MUTABLE' | 'IMMUTABLE';
12
+ imageScanningConfiguration?: {
13
+ scanOnPush?: boolean;
14
+ };
15
+ encryptionConfiguration?: {
16
+ encryptionType?: 'AES256' | 'KMS';
17
+ kmsKey?: string;
18
+ };
19
+ }
20
+ export interface AuthorizationData {
21
+ authorizationToken?: string;
22
+ expiresAt?: string;
23
+ proxyEndpoint?: string;
24
+ }
25
+ export interface ImageDetail {
26
+ registryId?: string;
27
+ repositoryName?: string;
28
+ imageDigest?: string;
29
+ imageTags?: string[];
30
+ imageSizeInBytes?: number;
31
+ imagePushedAt?: string;
32
+ imageScanStatus?: {
33
+ status?: string;
34
+ description?: string;
35
+ };
36
+ imageScanFindingsSummary?: {
37
+ findingSeverityCounts?: Record<string, number>;
38
+ };
39
+ }
40
+ export interface CreateRepositoryOptions {
41
+ repositoryName: string;
42
+ tags?: {
43
+ Key: string;
44
+ Value: string;
45
+ }[];
46
+ imageTagMutability?: 'MUTABLE' | 'IMMUTABLE';
47
+ imageScanningConfiguration?: {
48
+ scanOnPush?: boolean;
49
+ };
50
+ encryptionConfiguration?: {
51
+ encryptionType?: 'AES256' | 'KMS';
52
+ kmsKey?: string;
53
+ };
54
+ }
55
+ export interface LifecyclePolicy {
56
+ rulePriority: number;
57
+ description?: string;
58
+ selection: {
59
+ tagStatus: 'tagged' | 'untagged' | 'any';
60
+ tagPrefixList?: string[];
61
+ countType: 'imageCountMoreThan' | 'sinceImagePushed';
62
+ countNumber?: number;
63
+ countUnit?: 'days';
64
+ };
65
+ action: {
66
+ type: 'expire';
67
+ };
68
+ }
69
+ /**
70
+ * ECR service management using direct API calls
71
+ */
72
+ export declare class ECRClient {
73
+ private client;
74
+ private region;
75
+ constructor(region?: string, profile?: string);
76
+ /**
77
+ * Create a new ECR repository
78
+ */
79
+ createRepository(options: CreateRepositoryOptions): Promise<{
80
+ repository?: Repository;
81
+ }>;
82
+ /**
83
+ * Describe ECR repositories
84
+ */
85
+ describeRepositories(options?: {
86
+ repositoryNames?: string[];
87
+ registryId?: string;
88
+ maxResults?: number;
89
+ nextToken?: string;
90
+ }): Promise<{
91
+ repositories?: Repository[];
92
+ nextToken?: string;
93
+ }>;
94
+ /**
95
+ * Get authorization token for Docker login
96
+ */
97
+ getAuthorizationToken(registryIds?: string[]): Promise<{
98
+ authorizationData?: AuthorizationData[];
99
+ }>;
100
+ /**
101
+ * Delete an ECR repository
102
+ */
103
+ deleteRepository(options: {
104
+ repositoryName: string;
105
+ registryId?: string;
106
+ force?: boolean;
107
+ }): Promise<{
108
+ repository?: Repository;
109
+ }>;
110
+ /**
111
+ * Describe images in a repository
112
+ */
113
+ describeImages(options: {
114
+ repositoryName: string;
115
+ registryId?: string;
116
+ imageIds?: {
117
+ imageTag?: string;
118
+ imageDigest?: string;
119
+ }[];
120
+ filter?: {
121
+ tagStatus?: 'TAGGED' | 'UNTAGGED' | 'ANY';
122
+ };
123
+ maxResults?: number;
124
+ nextToken?: string;
125
+ }): Promise<{
126
+ imageDetails?: ImageDetail[];
127
+ nextToken?: string;
128
+ }>;
129
+ /**
130
+ * Batch delete images from a repository
131
+ */
132
+ batchDeleteImage(options: {
133
+ repositoryName: string;
134
+ registryId?: string;
135
+ imageIds: {
136
+ imageTag?: string;
137
+ imageDigest?: string;
138
+ }[];
139
+ }): Promise<{
140
+ imageIds?: {
141
+ imageTag?: string;
142
+ imageDigest?: string;
143
+ }[];
144
+ failures?: {
145
+ imageId?: {
146
+ imageTag?: string;
147
+ imageDigest?: string;
148
+ };
149
+ failureCode?: string;
150
+ failureReason?: string;
151
+ }[];
152
+ }>;
153
+ /**
154
+ * Put lifecycle policy on a repository
155
+ */
156
+ putLifecyclePolicy(options: {
157
+ repositoryName: string;
158
+ registryId?: string;
159
+ lifecyclePolicyText: string;
160
+ }): Promise<{
161
+ registryId?: string;
162
+ repositoryName?: string;
163
+ lifecyclePolicyText?: string;
164
+ }>;
165
+ /**
166
+ * Get lifecycle policy for a repository
167
+ */
168
+ getLifecyclePolicy(options: {
169
+ repositoryName: string;
170
+ registryId?: string;
171
+ }): Promise<{
172
+ registryId?: string;
173
+ repositoryName?: string;
174
+ lifecyclePolicyText?: string;
175
+ lastEvaluatedAt?: string;
176
+ }>;
177
+ /**
178
+ * Set repository policy
179
+ */
180
+ setRepositoryPolicy(options: {
181
+ repositoryName: string;
182
+ policyText: string;
183
+ registryId?: string;
184
+ force?: boolean;
185
+ }): Promise<{
186
+ registryId?: string;
187
+ repositoryName?: string;
188
+ policyText?: string;
189
+ }>;
190
+ /**
191
+ * Get repository policy
192
+ */
193
+ getRepositoryPolicy(options: {
194
+ repositoryName: string;
195
+ registryId?: string;
196
+ }): Promise<{
197
+ registryId?: string;
198
+ repositoryName?: string;
199
+ policyText?: string;
200
+ }>;
201
+ /**
202
+ * Tag a repository resource
203
+ */
204
+ tagResource(options: {
205
+ resourceArn: string;
206
+ tags: {
207
+ Key: string;
208
+ Value: string;
209
+ }[];
210
+ }): Promise<void>;
211
+ /**
212
+ * List tags for a resource
213
+ */
214
+ listTagsForResource(resourceArn: string): Promise<{
215
+ tags?: {
216
+ Key: string;
217
+ Value: string;
218
+ }[];
219
+ }>;
220
+ /**
221
+ * Helper: Create a standard lifecycle policy to keep only N images
222
+ */
223
+ createLifecyclePolicyText(rules: LifecyclePolicy[]): string;
224
+ /**
225
+ * Helper: Get docker login command
226
+ */
227
+ getDockerLoginCommand(): Promise<string>;
228
+ /**
229
+ * Helper: Get the registry URI for this region
230
+ */
231
+ getRegistryUri(accountId: string): string;
232
+ /**
233
+ * Parse repository response
234
+ */
235
+ private parseRepository;
236
+ /**
237
+ * Parse image detail response
238
+ */
239
+ private parseImageDetail;
240
+ }
@@ -0,0 +1,267 @@
1
+ /**
2
+ * AWS ECS Operations
3
+ * Direct API calls without AWS CLI dependency
4
+ */
5
+ export interface Service {
6
+ serviceArn?: string;
7
+ serviceName?: string;
8
+ clusterArn?: string;
9
+ status?: string;
10
+ desiredCount?: number;
11
+ runningCount?: number;
12
+ pendingCount?: number;
13
+ launchType?: string;
14
+ taskDefinition?: string;
15
+ deployments?: Deployment[];
16
+ events?: ServiceEvent[];
17
+ }
18
+ export interface Deployment {
19
+ id?: string;
20
+ status?: string;
21
+ taskDefinition?: string;
22
+ desiredCount?: number;
23
+ runningCount?: number;
24
+ pendingCount?: number;
25
+ createdAt?: string;
26
+ updatedAt?: string;
27
+ }
28
+ export interface ServiceEvent {
29
+ id?: string;
30
+ createdAt?: string;
31
+ message?: string;
32
+ }
33
+ export interface DescribeServicesOptions {
34
+ cluster: string;
35
+ services: string[];
36
+ }
37
+ export interface Task {
38
+ taskArn?: string;
39
+ taskDefinitionArn?: string;
40
+ clusterArn?: string;
41
+ lastStatus?: string;
42
+ desiredStatus?: string;
43
+ containers?: Container[];
44
+ createdAt?: string;
45
+ startedAt?: string;
46
+ stoppedAt?: string;
47
+ }
48
+ export interface Container {
49
+ containerArn?: string;
50
+ name?: string;
51
+ lastStatus?: string;
52
+ exitCode?: number;
53
+ reason?: string;
54
+ }
55
+ /**
56
+ * ECS service management using direct API calls
57
+ */
58
+ export declare class ECSClient {
59
+ private client;
60
+ private region;
61
+ constructor(region?: string, profile?: string);
62
+ /**
63
+ * Describe ECS services
64
+ */
65
+ describeServices(options: DescribeServicesOptions): Promise<{
66
+ services?: Service[];
67
+ failures?: any[];
68
+ }>;
69
+ /**
70
+ * List ECS services in a cluster
71
+ */
72
+ listServices(cluster: string): Promise<{
73
+ serviceArns?: string[];
74
+ }>;
75
+ /**
76
+ * List tasks in a cluster
77
+ */
78
+ listTasks(cluster: string, serviceName?: string): Promise<{
79
+ taskArns?: string[];
80
+ }>;
81
+ /**
82
+ * Describe ECS tasks
83
+ */
84
+ describeTasks(cluster: string, tasks: string[]): Promise<{
85
+ tasks?: Task[];
86
+ failures?: any[];
87
+ }>;
88
+ /**
89
+ * Update ECS service (e.g., force new deployment)
90
+ */
91
+ updateService(options: {
92
+ cluster: string;
93
+ service: string;
94
+ forceNewDeployment?: boolean;
95
+ desiredCount?: number;
96
+ taskDefinition?: string;
97
+ }): Promise<{
98
+ service?: Service;
99
+ }>;
100
+ /**
101
+ * Create a new ECS service
102
+ */
103
+ createService(options: {
104
+ cluster: string;
105
+ serviceName: string;
106
+ taskDefinition: string;
107
+ desiredCount: number;
108
+ launchType?: 'EC2' | 'FARGATE' | 'EXTERNAL';
109
+ networkConfiguration?: {
110
+ awsvpcConfiguration: {
111
+ subnets: string[];
112
+ securityGroups?: string[];
113
+ assignPublicIp?: 'ENABLED' | 'DISABLED';
114
+ };
115
+ };
116
+ loadBalancers?: Array<{
117
+ targetGroupArn: string;
118
+ containerName: string;
119
+ containerPort: number;
120
+ }>;
121
+ healthCheckGracePeriodSeconds?: number;
122
+ deploymentConfiguration?: {
123
+ minimumHealthyPercent?: number;
124
+ maximumPercent?: number;
125
+ };
126
+ }): Promise<{
127
+ service?: Service;
128
+ }>;
129
+ /**
130
+ * Delete an ECS service
131
+ */
132
+ deleteService(options: {
133
+ cluster: string;
134
+ service: string;
135
+ force?: boolean;
136
+ }): Promise<{
137
+ service?: Service;
138
+ }>;
139
+ /**
140
+ * List ECS clusters
141
+ */
142
+ listClusters(): Promise<{
143
+ clusterArns?: string[];
144
+ }>;
145
+ /**
146
+ * Describe ECS clusters
147
+ */
148
+ describeClusters(clusters: string[]): Promise<{
149
+ clusters?: any[];
150
+ failures?: any[];
151
+ }>;
152
+ /**
153
+ * Stop a running task
154
+ */
155
+ stopTask(options: {
156
+ cluster: string;
157
+ task: string;
158
+ reason?: string;
159
+ }): Promise<{
160
+ task?: Task;
161
+ }>;
162
+ /**
163
+ * Run a one-off task
164
+ */
165
+ runTask(options: {
166
+ cluster: string;
167
+ taskDefinition: string;
168
+ count?: number;
169
+ launchType?: 'EC2' | 'FARGATE' | 'EXTERNAL';
170
+ networkConfiguration?: {
171
+ awsvpcConfiguration: {
172
+ subnets: string[];
173
+ securityGroups?: string[];
174
+ assignPublicIp?: 'ENABLED' | 'DISABLED';
175
+ };
176
+ };
177
+ overrides?: {
178
+ containerOverrides?: Array<{
179
+ name: string;
180
+ command?: string[];
181
+ environment?: Array<{
182
+ name: string;
183
+ value: string;
184
+ }>;
185
+ }>;
186
+ };
187
+ }): Promise<{
188
+ tasks?: Task[];
189
+ failures?: any[];
190
+ }>;
191
+ /**
192
+ * Register a new task definition
193
+ */
194
+ registerTaskDefinition(options: {
195
+ family: string;
196
+ containerDefinitions: Array<{
197
+ name: string;
198
+ image: string;
199
+ memory?: number;
200
+ cpu?: number;
201
+ essential?: boolean;
202
+ portMappings?: Array<{
203
+ containerPort: number;
204
+ hostPort?: number;
205
+ protocol?: 'tcp' | 'udp';
206
+ }>;
207
+ environment?: Array<{
208
+ name: string;
209
+ value: string;
210
+ }>;
211
+ secrets?: Array<{
212
+ name: string;
213
+ valueFrom: string;
214
+ }>;
215
+ logConfiguration?: {
216
+ logDriver: string;
217
+ options?: Record<string, string>;
218
+ };
219
+ }>;
220
+ cpu?: string;
221
+ memory?: string;
222
+ networkMode?: 'bridge' | 'host' | 'awsvpc' | 'none';
223
+ requiresCompatibilities?: Array<'EC2' | 'FARGATE' | 'EXTERNAL'>;
224
+ executionRoleArn?: string;
225
+ taskRoleArn?: string;
226
+ }): Promise<{
227
+ taskDefinition?: any;
228
+ }>;
229
+ /**
230
+ * Deregister a task definition
231
+ */
232
+ deregisterTaskDefinition(taskDefinition: string): Promise<{
233
+ taskDefinition?: any;
234
+ }>;
235
+ /**
236
+ * Describe task definitions
237
+ */
238
+ describeTaskDefinition(taskDefinition: string): Promise<{
239
+ taskDefinition?: any;
240
+ tags?: any[];
241
+ }>;
242
+ /**
243
+ * List task definition families
244
+ */
245
+ listTaskDefinitionFamilies(options?: {
246
+ familyPrefix?: string;
247
+ status?: 'ACTIVE' | 'INACTIVE' | 'ALL';
248
+ }): Promise<{
249
+ families?: string[];
250
+ }>;
251
+ /**
252
+ * Wait for service to become stable
253
+ */
254
+ waitForServiceStable(cluster: string, service: string, maxAttempts?: number, delayMs?: number): Promise<boolean>;
255
+ /**
256
+ * Helper: Force new deployment
257
+ */
258
+ forceNewDeployment(cluster: string, service: string): Promise<{
259
+ service?: Service;
260
+ }>;
261
+ /**
262
+ * Helper: Scale service
263
+ */
264
+ scaleService(cluster: string, service: string, desiredCount: number): Promise<{
265
+ service?: Service;
266
+ }>;
267
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * AWS EFS (Elastic File System) Client
3
+ * Manages EFS file systems using direct API calls
4
+ */
5
+ export interface FileSystem {
6
+ FileSystemId?: string;
7
+ Name?: string;
8
+ CreationTime?: string;
9
+ LifeCycleState?: 'creating' | 'available' | 'updating' | 'deleting' | 'deleted' | 'error';
10
+ NumberOfMountTargets?: number;
11
+ SizeInBytes?: {
12
+ Value?: number;
13
+ Timestamp?: string;
14
+ };
15
+ PerformanceMode?: 'generalPurpose' | 'maxIO';
16
+ Encrypted?: boolean;
17
+ ThroughputMode?: 'bursting' | 'provisioned' | 'elastic';
18
+ Tags?: {
19
+ Key?: string;
20
+ Value?: string;
21
+ }[];
22
+ }
23
+ export declare class EFSClient {
24
+ private client;
25
+ private region;
26
+ constructor(region?: string);
27
+ /**
28
+ * Describe EFS file systems
29
+ */
30
+ describeFileSystems(options?: {
31
+ FileSystemId?: string;
32
+ CreationToken?: string;
33
+ }): Promise<{
34
+ FileSystems?: FileSystem[];
35
+ }>;
36
+ }
@@ -0,0 +1,112 @@
1
+ /**
2
+ * AWS ElastiCache Operations
3
+ * Direct API calls without AWS CLI dependency
4
+ */
5
+ export interface CacheCluster {
6
+ CacheClusterId: string;
7
+ CacheClusterStatus: string;
8
+ Engine: string;
9
+ EngineVersion: string;
10
+ CacheNodeType: string;
11
+ NumCacheNodes: number;
12
+ PreferredAvailabilityZone?: string;
13
+ CacheClusterCreateTime: string;
14
+ CacheNodes?: Array<{
15
+ CacheNodeId: string;
16
+ CacheNodeStatus: string;
17
+ Endpoint?: {
18
+ Address: string;
19
+ Port: number;
20
+ };
21
+ }>;
22
+ }
23
+ export interface ReplicationGroup {
24
+ ReplicationGroupId: string;
25
+ Status: string;
26
+ Description?: string;
27
+ MemberClusters?: string[];
28
+ NodeGroups?: Array<{
29
+ NodeGroupId: string;
30
+ Status: string;
31
+ PrimaryEndpoint?: {
32
+ Address: string;
33
+ Port: number;
34
+ };
35
+ }>;
36
+ }
37
+ export interface CacheEngineVersion {
38
+ Engine: string;
39
+ EngineVersion: string;
40
+ CacheParameterGroupFamily: string;
41
+ }
42
+ /**
43
+ * ElastiCache management using direct API calls
44
+ */
45
+ export declare class ElastiCacheClient {
46
+ private client;
47
+ private region;
48
+ constructor(region?: string, profile?: string);
49
+ /**
50
+ * List all cache clusters
51
+ */
52
+ describeCacheClusters(cacheClusterId?: string): Promise<{
53
+ CacheClusters: CacheCluster[];
54
+ }>;
55
+ /**
56
+ * List all replication groups (Redis clusters)
57
+ */
58
+ describeReplicationGroups(replicationGroupId?: string): Promise<{
59
+ ReplicationGroups: ReplicationGroup[];
60
+ }>;
61
+ /**
62
+ * Create a cache cluster
63
+ */
64
+ createCacheCluster(options: {
65
+ cacheClusterId: string;
66
+ engine: 'memcached' | 'redis';
67
+ cacheNodeType: string;
68
+ numCacheNodes?: number;
69
+ engineVersion?: string;
70
+ port?: number;
71
+ securityGroupIds?: string[];
72
+ subnetGroupName?: string;
73
+ tags?: Array<{
74
+ Key: string;
75
+ Value: string;
76
+ }>;
77
+ }): Promise<{
78
+ CacheCluster: CacheCluster;
79
+ }>;
80
+ /**
81
+ * Delete a cache cluster
82
+ */
83
+ deleteCacheCluster(cacheClusterId: string, finalSnapshotId?: string): Promise<void>;
84
+ /**
85
+ * Reboot cache cluster nodes
86
+ */
87
+ rebootCacheCluster(cacheClusterId: string, nodeIds: string[]): Promise<void>;
88
+ /**
89
+ * List available cache engine versions
90
+ */
91
+ describeCacheEngineVersions(engine?: string): Promise<{
92
+ CacheEngineVersions: CacheEngineVersion[];
93
+ }>;
94
+ /**
95
+ * Get cache cluster statistics (mock for now)
96
+ */
97
+ getCacheStatistics(cacheClusterId: string): Promise<{
98
+ cpuUtilization?: number;
99
+ evictions?: number;
100
+ hits?: number;
101
+ misses?: number;
102
+ connections?: number;
103
+ }>;
104
+ /**
105
+ * Parse cache clusters from response
106
+ */
107
+ private parseCacheClusters;
108
+ /**
109
+ * Parse single cache cluster from response
110
+ */
111
+ private parseCacheCluster;
112
+ }