import {
  HostHeaderInputConfig,
  HostHeaderResolvedConfig,
  UserAgentInputConfig,
  UserAgentResolvedConfig,
} from "@aws-sdk/core/client";
import {
  DefaultsMode as __DefaultsMode,
  SmithyConfiguration as __SmithyConfiguration,
  SmithyResolvedConfiguration as __SmithyResolvedConfiguration,
  Client as __Client,
} from "@smithy/core/client";
import { RegionInputConfig, RegionResolvedConfig } from "@smithy/core/config";
import {
  EndpointInputConfig,
  EndpointResolvedConfig,
} from "@smithy/core/endpoints";
import { HttpHandlerUserInput as __HttpHandlerUserInput } from "@smithy/core/protocols";
import { RetryInputConfig, RetryResolvedConfig } from "@smithy/core/retry";
import {
  AwsCredentialIdentityProvider,
  BodyLengthCalculator as __BodyLengthCalculator,
  CheckOptionalClientConfig as __CheckOptionalClientConfig,
  ChecksumConstructor as __ChecksumConstructor,
  Decoder as __Decoder,
  Encoder as __Encoder,
  HashConstructor as __HashConstructor,
  HttpHandlerOptions as __HttpHandlerOptions,
  Logger as __Logger,
  Provider as __Provider,
  StreamCollector as __StreamCollector,
  UrlParser as __UrlParser,
  UserAgent as __UserAgent,
} from "@smithy/types";
import {
  HttpAuthSchemeInputConfig,
  HttpAuthSchemeResolvedConfig,
} from "./auth/httpAuthSchemeProvider";
import {
  AcceptPrimaryEmailUpdateCommandInput,
  AcceptPrimaryEmailUpdateCommandOutput,
} from "./commands/AcceptPrimaryEmailUpdateCommand";
import {
  DeleteAlternateContactCommandInput,
  DeleteAlternateContactCommandOutput,
} from "./commands/DeleteAlternateContactCommand";
import {
  DisableRegionCommandInput,
  DisableRegionCommandOutput,
} from "./commands/DisableRegionCommand";
import {
  EnableRegionCommandInput,
  EnableRegionCommandOutput,
} from "./commands/EnableRegionCommand";
import {
  GetAccountInformationCommandInput,
  GetAccountInformationCommandOutput,
} from "./commands/GetAccountInformationCommand";
import {
  GetAlternateContactCommandInput,
  GetAlternateContactCommandOutput,
} from "./commands/GetAlternateContactCommand";
import {
  GetContactInformationCommandInput,
  GetContactInformationCommandOutput,
} from "./commands/GetContactInformationCommand";
import {
  GetGovCloudAccountInformationCommandInput,
  GetGovCloudAccountInformationCommandOutput,
} from "./commands/GetGovCloudAccountInformationCommand";
import {
  GetPrimaryEmailCommandInput,
  GetPrimaryEmailCommandOutput,
} from "./commands/GetPrimaryEmailCommand";
import {
  GetRegionOptStatusCommandInput,
  GetRegionOptStatusCommandOutput,
} from "./commands/GetRegionOptStatusCommand";
import {
  ListRegionsCommandInput,
  ListRegionsCommandOutput,
} from "./commands/ListRegionsCommand";
import {
  PutAccountNameCommandInput,
  PutAccountNameCommandOutput,
} from "./commands/PutAccountNameCommand";
import {
  PutAlternateContactCommandInput,
  PutAlternateContactCommandOutput,
} from "./commands/PutAlternateContactCommand";
import {
  PutContactInformationCommandInput,
  PutContactInformationCommandOutput,
} from "./commands/PutContactInformationCommand";
import {
  StartPrimaryEmailUpdateCommandInput,
  StartPrimaryEmailUpdateCommandOutput,
} from "./commands/StartPrimaryEmailUpdateCommand";
import {
  ClientInputEndpointParameters,
  ClientResolvedEndpointParameters,
  EndpointParameters,
} from "./endpoint/EndpointParameters";
import { RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions";
export { __Client };
export type ServiceInputTypes =
  | AcceptPrimaryEmailUpdateCommandInput
  | DeleteAlternateContactCommandInput
  | DisableRegionCommandInput
  | EnableRegionCommandInput
  | GetAccountInformationCommandInput
  | GetAlternateContactCommandInput
  | GetContactInformationCommandInput
  | GetGovCloudAccountInformationCommandInput
  | GetPrimaryEmailCommandInput
  | GetRegionOptStatusCommandInput
  | ListRegionsCommandInput
  | PutAccountNameCommandInput
  | PutAlternateContactCommandInput
  | PutContactInformationCommandInput
  | StartPrimaryEmailUpdateCommandInput;
export type ServiceOutputTypes =
  | AcceptPrimaryEmailUpdateCommandOutput
  | DeleteAlternateContactCommandOutput
  | DisableRegionCommandOutput
  | EnableRegionCommandOutput
  | GetAccountInformationCommandOutput
  | GetAlternateContactCommandOutput
  | GetContactInformationCommandOutput
  | GetGovCloudAccountInformationCommandOutput
  | GetPrimaryEmailCommandOutput
  | GetRegionOptStatusCommandOutput
  | ListRegionsCommandOutput
  | PutAccountNameCommandOutput
  | PutAlternateContactCommandOutput
  | PutContactInformationCommandOutput
  | StartPrimaryEmailUpdateCommandOutput;
export interface ClientDefaults
  extends Partial<__SmithyConfiguration<__HttpHandlerOptions>> {
  requestHandler?: __HttpHandlerUserInput;
  sha256?: __ChecksumConstructor | __HashConstructor;
  urlParser?: __UrlParser;
  bodyLengthChecker?: __BodyLengthCalculator;
  streamCollector?: __StreamCollector;
  base64Decoder?: __Decoder;
  base64Encoder?: __Encoder;
  utf8Decoder?: __Decoder;
  utf8Encoder?: __Encoder;
  runtime?: string;
  disableHostPrefix?: boolean;
  serviceId?: string;
  useDualstackEndpoint?: boolean | __Provider<boolean>;
  useFipsEndpoint?: boolean | __Provider<boolean>;
  region?: string | __Provider<string>;
  profile?: string;
  defaultUserAgentProvider?: __Provider<__UserAgent>;
  credentialDefaultProvider?: (input: any) => AwsCredentialIdentityProvider;
  maxAttempts?: number | __Provider<number>;
  retryMode?: string | __Provider<string>;
  logger?: __Logger;
  extensions?: RuntimeExtension[];
  defaultsMode?: __DefaultsMode | __Provider<__DefaultsMode>;
}
export type AccountClientConfigType = Partial<
  __SmithyConfiguration<__HttpHandlerOptions>
> &
  ClientDefaults &
  UserAgentInputConfig &
  RetryInputConfig &
  RegionInputConfig &
  HostHeaderInputConfig &
  EndpointInputConfig<EndpointParameters> &
  HttpAuthSchemeInputConfig &
  ClientInputEndpointParameters;
export interface AccountClientConfig extends AccountClientConfigType {}
export type AccountClientResolvedConfigType =
  __SmithyResolvedConfiguration<__HttpHandlerOptions> &
    Required<ClientDefaults> &
    RuntimeExtensionsConfig &
    UserAgentResolvedConfig &
    RetryResolvedConfig &
    RegionResolvedConfig &
    HostHeaderResolvedConfig &
    EndpointResolvedConfig<EndpointParameters> &
    HttpAuthSchemeResolvedConfig &
    ClientResolvedEndpointParameters;
export interface AccountClientResolvedConfig
  extends AccountClientResolvedConfigType {}
export declare class AccountClient extends __Client<
  __HttpHandlerOptions,
  ServiceInputTypes,
  ServiceOutputTypes,
  AccountClientResolvedConfig
> {
  readonly config: AccountClientResolvedConfig;
  constructor(
    ...[configuration]: __CheckOptionalClientConfig<AccountClientConfig>
  );
  destroy(): void;
}
