import * as AWS from 'aws-sdk'; import { ConfigurationOptions } from 'aws-sdk/lib/config'; import { Account } from './sdk-provider'; /** @experimental */ export interface ISDK { /** * The region this SDK has been instantiated for * * (As distinct from the `defaultRegion()` on SdkProvider which * represents the region configured in the default config). */ readonly currentRegion: string; /** * The Account this SDK has been instantiated for * * (As distinct from the `defaultAccount()` on SdkProvider which * represents the account available by using default credentials). */ currentAccount(): Promise; cloudFormation(): AWS.CloudFormation; ec2(): AWS.EC2; ssm(): AWS.SSM; s3(): AWS.S3; route53(): AWS.Route53; ecr(): AWS.ECR; } /** * Base functionality of SDK without credential fetching */ export declare class SDK implements ISDK { private readonly credentials; private static readonly accountCache; readonly currentRegion: string; private readonly config; /** * Default retry options for SDK clients. */ private readonly retryOptions; /** * The more generous retry policy for CloudFormation, which has a 1 TPM limit on certain APIs, * which are abundantly used for deployment tracking, ... * * So we're allowing way more retries, but waiting a bit more. */ private readonly cloudFormationRetryOptions; constructor(credentials: AWS.Credentials, region: string, httpOptions?: ConfigurationOptions); cloudFormation(): AWS.CloudFormation; ec2(): AWS.EC2; ssm(): AWS.SSM; s3(): AWS.S3; route53(): AWS.Route53; ecr(): AWS.ECR; currentAccount(): Promise; }