import {
  HostHeaderInputConfig,
  HostHeaderResolvedConfig,
} from "@aws-sdk/middleware-host-header";
import {
  UserAgentInputConfig,
  UserAgentResolvedConfig,
} from "@aws-sdk/middleware-user-agent";
import {
  RegionInputConfig,
  RegionResolvedConfig,
} from "@smithy/config-resolver";
import {
  EndpointInputConfig,
  EndpointResolvedConfig,
} from "@smithy/middleware-endpoint";
import {
  RetryInputConfig,
  RetryResolvedConfig,
} from "@smithy/middleware-retry";
import { HttpHandlerUserInput as __HttpHandlerUserInput } from "@smithy/protocol-http";
import {
  Client as __Client,
  DefaultsMode as __DefaultsMode,
  SmithyConfiguration as __SmithyConfiguration,
  SmithyResolvedConfiguration as __SmithyResolvedConfiguration,
} from "@smithy/smithy-client";
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,
  Provider,
  StreamCollector as __StreamCollector,
  UrlParser as __UrlParser,
  UserAgent as __UserAgent,
} from "@smithy/types";
import {
  HttpAuthSchemeInputConfig,
  HttpAuthSchemeResolvedConfig,
} from "./auth/httpAuthSchemeProvider";
import {
  AcknowledgeJobCommandInput,
  AcknowledgeJobCommandOutput,
} from "./commands/AcknowledgeJobCommand";
import {
  AcknowledgeThirdPartyJobCommandInput,
  AcknowledgeThirdPartyJobCommandOutput,
} from "./commands/AcknowledgeThirdPartyJobCommand";
import {
  CreateCustomActionTypeCommandInput,
  CreateCustomActionTypeCommandOutput,
} from "./commands/CreateCustomActionTypeCommand";
import {
  CreatePipelineCommandInput,
  CreatePipelineCommandOutput,
} from "./commands/CreatePipelineCommand";
import {
  DeleteCustomActionTypeCommandInput,
  DeleteCustomActionTypeCommandOutput,
} from "./commands/DeleteCustomActionTypeCommand";
import {
  DeletePipelineCommandInput,
  DeletePipelineCommandOutput,
} from "./commands/DeletePipelineCommand";
import {
  DeleteWebhookCommandInput,
  DeleteWebhookCommandOutput,
} from "./commands/DeleteWebhookCommand";
import {
  DeregisterWebhookWithThirdPartyCommandInput,
  DeregisterWebhookWithThirdPartyCommandOutput,
} from "./commands/DeregisterWebhookWithThirdPartyCommand";
import {
  DisableStageTransitionCommandInput,
  DisableStageTransitionCommandOutput,
} from "./commands/DisableStageTransitionCommand";
import {
  EnableStageTransitionCommandInput,
  EnableStageTransitionCommandOutput,
} from "./commands/EnableStageTransitionCommand";
import {
  GetActionTypeCommandInput,
  GetActionTypeCommandOutput,
} from "./commands/GetActionTypeCommand";
import {
  GetJobDetailsCommandInput,
  GetJobDetailsCommandOutput,
} from "./commands/GetJobDetailsCommand";
import {
  GetPipelineCommandInput,
  GetPipelineCommandOutput,
} from "./commands/GetPipelineCommand";
import {
  GetPipelineExecutionCommandInput,
  GetPipelineExecutionCommandOutput,
} from "./commands/GetPipelineExecutionCommand";
import {
  GetPipelineStateCommandInput,
  GetPipelineStateCommandOutput,
} from "./commands/GetPipelineStateCommand";
import {
  GetThirdPartyJobDetailsCommandInput,
  GetThirdPartyJobDetailsCommandOutput,
} from "./commands/GetThirdPartyJobDetailsCommand";
import {
  ListActionExecutionsCommandInput,
  ListActionExecutionsCommandOutput,
} from "./commands/ListActionExecutionsCommand";
import {
  ListActionTypesCommandInput,
  ListActionTypesCommandOutput,
} from "./commands/ListActionTypesCommand";
import {
  ListPipelineExecutionsCommandInput,
  ListPipelineExecutionsCommandOutput,
} from "./commands/ListPipelineExecutionsCommand";
import {
  ListPipelinesCommandInput,
  ListPipelinesCommandOutput,
} from "./commands/ListPipelinesCommand";
import {
  ListRuleExecutionsCommandInput,
  ListRuleExecutionsCommandOutput,
} from "./commands/ListRuleExecutionsCommand";
import {
  ListRuleTypesCommandInput,
  ListRuleTypesCommandOutput,
} from "./commands/ListRuleTypesCommand";
import {
  ListTagsForResourceCommandInput,
  ListTagsForResourceCommandOutput,
} from "./commands/ListTagsForResourceCommand";
import {
  ListWebhooksCommandInput,
  ListWebhooksCommandOutput,
} from "./commands/ListWebhooksCommand";
import {
  OverrideStageConditionCommandInput,
  OverrideStageConditionCommandOutput,
} from "./commands/OverrideStageConditionCommand";
import {
  PollForJobsCommandInput,
  PollForJobsCommandOutput,
} from "./commands/PollForJobsCommand";
import {
  PollForThirdPartyJobsCommandInput,
  PollForThirdPartyJobsCommandOutput,
} from "./commands/PollForThirdPartyJobsCommand";
import {
  PutActionRevisionCommandInput,
  PutActionRevisionCommandOutput,
} from "./commands/PutActionRevisionCommand";
import {
  PutApprovalResultCommandInput,
  PutApprovalResultCommandOutput,
} from "./commands/PutApprovalResultCommand";
import {
  PutJobFailureResultCommandInput,
  PutJobFailureResultCommandOutput,
} from "./commands/PutJobFailureResultCommand";
import {
  PutJobSuccessResultCommandInput,
  PutJobSuccessResultCommandOutput,
} from "./commands/PutJobSuccessResultCommand";
import {
  PutThirdPartyJobFailureResultCommandInput,
  PutThirdPartyJobFailureResultCommandOutput,
} from "./commands/PutThirdPartyJobFailureResultCommand";
import {
  PutThirdPartyJobSuccessResultCommandInput,
  PutThirdPartyJobSuccessResultCommandOutput,
} from "./commands/PutThirdPartyJobSuccessResultCommand";
import {
  PutWebhookCommandInput,
  PutWebhookCommandOutput,
} from "./commands/PutWebhookCommand";
import {
  RegisterWebhookWithThirdPartyCommandInput,
  RegisterWebhookWithThirdPartyCommandOutput,
} from "./commands/RegisterWebhookWithThirdPartyCommand";
import {
  RetryStageExecutionCommandInput,
  RetryStageExecutionCommandOutput,
} from "./commands/RetryStageExecutionCommand";
import {
  RollbackStageCommandInput,
  RollbackStageCommandOutput,
} from "./commands/RollbackStageCommand";
import {
  StartPipelineExecutionCommandInput,
  StartPipelineExecutionCommandOutput,
} from "./commands/StartPipelineExecutionCommand";
import {
  StopPipelineExecutionCommandInput,
  StopPipelineExecutionCommandOutput,
} from "./commands/StopPipelineExecutionCommand";
import {
  TagResourceCommandInput,
  TagResourceCommandOutput,
} from "./commands/TagResourceCommand";
import {
  UntagResourceCommandInput,
  UntagResourceCommandOutput,
} from "./commands/UntagResourceCommand";
import {
  UpdateActionTypeCommandInput,
  UpdateActionTypeCommandOutput,
} from "./commands/UpdateActionTypeCommand";
import {
  UpdatePipelineCommandInput,
  UpdatePipelineCommandOutput,
} from "./commands/UpdatePipelineCommand";
import {
  ClientInputEndpointParameters,
  ClientResolvedEndpointParameters,
  EndpointParameters,
} from "./endpoint/EndpointParameters";
import { RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions";
export { __Client };
export type ServiceInputTypes =
  | AcknowledgeJobCommandInput
  | AcknowledgeThirdPartyJobCommandInput
  | CreateCustomActionTypeCommandInput
  | CreatePipelineCommandInput
  | DeleteCustomActionTypeCommandInput
  | DeletePipelineCommandInput
  | DeleteWebhookCommandInput
  | DeregisterWebhookWithThirdPartyCommandInput
  | DisableStageTransitionCommandInput
  | EnableStageTransitionCommandInput
  | GetActionTypeCommandInput
  | GetJobDetailsCommandInput
  | GetPipelineCommandInput
  | GetPipelineExecutionCommandInput
  | GetPipelineStateCommandInput
  | GetThirdPartyJobDetailsCommandInput
  | ListActionExecutionsCommandInput
  | ListActionTypesCommandInput
  | ListPipelineExecutionsCommandInput
  | ListPipelinesCommandInput
  | ListRuleExecutionsCommandInput
  | ListRuleTypesCommandInput
  | ListTagsForResourceCommandInput
  | ListWebhooksCommandInput
  | OverrideStageConditionCommandInput
  | PollForJobsCommandInput
  | PollForThirdPartyJobsCommandInput
  | PutActionRevisionCommandInput
  | PutApprovalResultCommandInput
  | PutJobFailureResultCommandInput
  | PutJobSuccessResultCommandInput
  | PutThirdPartyJobFailureResultCommandInput
  | PutThirdPartyJobSuccessResultCommandInput
  | PutWebhookCommandInput
  | RegisterWebhookWithThirdPartyCommandInput
  | RetryStageExecutionCommandInput
  | RollbackStageCommandInput
  | StartPipelineExecutionCommandInput
  | StopPipelineExecutionCommandInput
  | TagResourceCommandInput
  | UntagResourceCommandInput
  | UpdateActionTypeCommandInput
  | UpdatePipelineCommandInput;
export type ServiceOutputTypes =
  | AcknowledgeJobCommandOutput
  | AcknowledgeThirdPartyJobCommandOutput
  | CreateCustomActionTypeCommandOutput
  | CreatePipelineCommandOutput
  | DeleteCustomActionTypeCommandOutput
  | DeletePipelineCommandOutput
  | DeleteWebhookCommandOutput
  | DeregisterWebhookWithThirdPartyCommandOutput
  | DisableStageTransitionCommandOutput
  | EnableStageTransitionCommandOutput
  | GetActionTypeCommandOutput
  | GetJobDetailsCommandOutput
  | GetPipelineCommandOutput
  | GetPipelineExecutionCommandOutput
  | GetPipelineStateCommandOutput
  | GetThirdPartyJobDetailsCommandOutput
  | ListActionExecutionsCommandOutput
  | ListActionTypesCommandOutput
  | ListPipelineExecutionsCommandOutput
  | ListPipelinesCommandOutput
  | ListRuleExecutionsCommandOutput
  | ListRuleTypesCommandOutput
  | ListTagsForResourceCommandOutput
  | ListWebhooksCommandOutput
  | OverrideStageConditionCommandOutput
  | PollForJobsCommandOutput
  | PollForThirdPartyJobsCommandOutput
  | PutActionRevisionCommandOutput
  | PutApprovalResultCommandOutput
  | PutJobFailureResultCommandOutput
  | PutJobSuccessResultCommandOutput
  | PutThirdPartyJobFailureResultCommandOutput
  | PutThirdPartyJobSuccessResultCommandOutput
  | PutWebhookCommandOutput
  | RegisterWebhookWithThirdPartyCommandOutput
  | RetryStageExecutionCommandOutput
  | RollbackStageCommandOutput
  | StartPipelineExecutionCommandOutput
  | StopPipelineExecutionCommandOutput
  | TagResourceCommandOutput
  | UntagResourceCommandOutput
  | UpdateActionTypeCommandOutput
  | UpdatePipelineCommandOutput;
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 CodePipelineClientConfigType = Partial<
  __SmithyConfiguration<__HttpHandlerOptions>
> &
  ClientDefaults &
  UserAgentInputConfig &
  RetryInputConfig &
  RegionInputConfig &
  HostHeaderInputConfig &
  EndpointInputConfig<EndpointParameters> &
  HttpAuthSchemeInputConfig &
  ClientInputEndpointParameters;
export interface CodePipelineClientConfig
  extends CodePipelineClientConfigType {}
export type CodePipelineClientResolvedConfigType =
  __SmithyResolvedConfiguration<__HttpHandlerOptions> &
    Required<ClientDefaults> &
    RuntimeExtensionsConfig &
    UserAgentResolvedConfig &
    RetryResolvedConfig &
    RegionResolvedConfig &
    HostHeaderResolvedConfig &
    EndpointResolvedConfig<EndpointParameters> &
    HttpAuthSchemeResolvedConfig &
    ClientResolvedEndpointParameters;
export interface CodePipelineClientResolvedConfig
  extends CodePipelineClientResolvedConfigType {}
export declare class CodePipelineClient extends __Client<
  __HttpHandlerOptions,
  ServiceInputTypes,
  ServiceOutputTypes,
  CodePipelineClientResolvedConfig
> {
  readonly config: CodePipelineClientResolvedConfig;
  constructor(
    ...[configuration]: __CheckOptionalClientConfig<CodePipelineClientConfig>
  );
  destroy(): void;
}
