/// import * as AWS from 'aws-sdk'; export declare class AwsClients { readonly region: string; private readonly output; static default(output: NodeJS.WritableStream): Promise; static forRegion(region: string, output: NodeJS.WritableStream): Promise; private readonly config; readonly cloudFormation: AwsCaller; readonly s3: AwsCaller; readonly ecr: AwsCaller; readonly sns: AwsCaller; readonly iam: AwsCaller; readonly lambda: AwsCaller; readonly sts: AwsCaller; constructor(region: string, output: NodeJS.WritableStream); account(): Promise; deleteStacks(...stackNames: string[]): Promise; stackStatus(stackName: string): Promise; emptyBucket(bucketName: string): Promise; deleteImageRepository(repositoryName: string): Promise; deleteBucket(bucketName: string): Promise; } declare type AwsCaller = >(call: B, request: First[B]>) => Promise[B]>>; declare type ServiceCalls = NoNayNever>; declare type SimplifiedService = { [k in keyof T]: AwsCallIO; }; declare type NoNayNever = Pick; declare type AwsCallIO = T extends { (args: infer INPUT, callback?: ((err: AWS.AWSError, data: any) => void) | undefined): AWS.Request; (callback?: ((err: AWS.AWSError, data: {}) => void) | undefined): AWS.Request; } ? [INPUT, OUTPUT] : never; declare type First = T extends [any, any] ? T[0] : never; declare type Second = T extends [any, any] ? T[1] : never; export declare function isStackMissingError(e: Error): boolean; export declare function isBucketMissingError(e: Error): boolean; /** * Retry an async operation until a deadline is hit. * * Use `retry.forSeconds()` to construct a deadline relative to right now. * * Exceptions will cause the operation to retry. Use `retry.abort` to annotate an exception * to stop the retry and end in a failure. */ export declare function retry(output: NodeJS.WritableStream, operation: string, deadline: Date, block: () => Promise): Promise; export declare namespace retry { var forSeconds: (seconds: number) => Date; var abort: (e: Error) => Error; } export declare function sleep(ms: number): Promise; export declare function outputFromStack(key: string, stack: AWS.CloudFormation.Stack): string | undefined; export {};