import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-client";
import { IoTServiceException as __BaseException } from "./IoTServiceException";
export declare const AbortAction: {
  readonly CANCEL: "CANCEL";
};
export type AbortAction = (typeof AbortAction)[keyof typeof AbortAction];
export declare const JobExecutionFailureType: {
  readonly ALL: "ALL";
  readonly FAILED: "FAILED";
  readonly REJECTED: "REJECTED";
  readonly TIMED_OUT: "TIMED_OUT";
};
export type JobExecutionFailureType =
  (typeof JobExecutionFailureType)[keyof typeof JobExecutionFailureType];
export interface AbortCriteria {
  failureType: JobExecutionFailureType | undefined;
  action: AbortAction | undefined;
  thresholdPercentage: number | undefined;
  minNumberOfExecutedThings: number | undefined;
}
export interface AbortConfig {
  criteriaList: AbortCriteria[] | undefined;
}
export interface AcceptCertificateTransferRequest {
  certificateId: string | undefined;
  setAsActive?: boolean | undefined;
}
export declare class InternalFailureException extends __BaseException {
  readonly name: "InternalFailureException";
  readonly $fault: "server";
  constructor(
    opts: __ExceptionOptionType<InternalFailureException, __BaseException>
  );
}
export declare class InvalidRequestException extends __BaseException {
  readonly name: "InvalidRequestException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<InvalidRequestException, __BaseException>
  );
}
export declare class ResourceNotFoundException extends __BaseException {
  readonly name: "ResourceNotFoundException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<ResourceNotFoundException, __BaseException>
  );
}
export declare class ServiceUnavailableException extends __BaseException {
  readonly name: "ServiceUnavailableException";
  readonly $fault: "server";
  constructor(
    opts: __ExceptionOptionType<ServiceUnavailableException, __BaseException>
  );
}
export declare class ThrottlingException extends __BaseException {
  readonly name: "ThrottlingException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<ThrottlingException, __BaseException>
  );
}
export declare class TransferAlreadyCompletedException extends __BaseException {
  readonly name: "TransferAlreadyCompletedException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<
      TransferAlreadyCompletedException,
      __BaseException
    >
  );
}
export declare class UnauthorizedException extends __BaseException {
  readonly name: "UnauthorizedException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<UnauthorizedException, __BaseException>
  );
}
export interface CloudwatchAlarmAction {
  roleArn: string | undefined;
  alarmName: string | undefined;
  stateReason: string | undefined;
  stateValue: string | undefined;
}
export interface CloudwatchLogsAction {
  roleArn: string | undefined;
  logGroupName: string | undefined;
  batchMode?: boolean | undefined;
}
export interface CloudwatchMetricAction {
  roleArn: string | undefined;
  metricNamespace: string | undefined;
  metricName: string | undefined;
  metricValue: string | undefined;
  metricUnit: string | undefined;
  metricTimestamp?: string | undefined;
}
export declare const DynamoKeyType: {
  readonly NUMBER: "NUMBER";
  readonly STRING: "STRING";
};
export type DynamoKeyType = (typeof DynamoKeyType)[keyof typeof DynamoKeyType];
export interface DynamoDBAction {
  tableName: string | undefined;
  roleArn: string | undefined;
  operation?: string | undefined;
  hashKeyField: string | undefined;
  hashKeyValue: string | undefined;
  hashKeyType?: DynamoKeyType | undefined;
  rangeKeyField?: string | undefined;
  rangeKeyValue?: string | undefined;
  rangeKeyType?: DynamoKeyType | undefined;
  payloadField?: string | undefined;
}
export interface PutItemInput {
  tableName: string | undefined;
}
export interface DynamoDBv2Action {
  roleArn: string | undefined;
  putItem: PutItemInput | undefined;
}
export interface ElasticsearchAction {
  roleArn: string | undefined;
  endpoint: string | undefined;
  index: string | undefined;
  type: string | undefined;
  id: string | undefined;
}
export interface FirehoseAction {
  roleArn: string | undefined;
  deliveryStreamName: string | undefined;
  separator?: string | undefined;
  batchMode?: boolean | undefined;
}
export interface SigV4Authorization {
  signingRegion: string | undefined;
  serviceName: string | undefined;
  roleArn: string | undefined;
}
export interface HttpAuthorization {
  sigv4?: SigV4Authorization | undefined;
}
export interface HttpActionHeader {
  key: string | undefined;
  value: string | undefined;
}
export interface HttpAction {
  url: string | undefined;
  confirmationUrl?: string | undefined;
  headers?: HttpActionHeader[] | undefined;
  auth?: HttpAuthorization | undefined;
}
export interface IotAnalyticsAction {
  channelArn?: string | undefined;
  channelName?: string | undefined;
  batchMode?: boolean | undefined;
  roleArn?: string | undefined;
}
export interface IotEventsAction {
  inputName: string | undefined;
  messageId?: string | undefined;
  batchMode?: boolean | undefined;
  roleArn: string | undefined;
}
export interface AssetPropertyTimestamp {
  timeInSeconds: string | undefined;
  offsetInNanos?: string | undefined;
}
export type AssetPropertyVariant =
  | AssetPropertyVariant.BooleanValueMember
  | AssetPropertyVariant.DoubleValueMember
  | AssetPropertyVariant.IntegerValueMember
  | AssetPropertyVariant.StringValueMember
  | AssetPropertyVariant.$UnknownMember;
export declare namespace AssetPropertyVariant {
  interface StringValueMember {
    stringValue: string;
    integerValue?: never;
    doubleValue?: never;
    booleanValue?: never;
    $unknown?: never;
  }
  interface IntegerValueMember {
    stringValue?: never;
    integerValue: string;
    doubleValue?: never;
    booleanValue?: never;
    $unknown?: never;
  }
  interface DoubleValueMember {
    stringValue?: never;
    integerValue?: never;
    doubleValue: string;
    booleanValue?: never;
    $unknown?: never;
  }
  interface BooleanValueMember {
    stringValue?: never;
    integerValue?: never;
    doubleValue?: never;
    booleanValue: string;
    $unknown?: never;
  }
  interface $UnknownMember {
    stringValue?: never;
    integerValue?: never;
    doubleValue?: never;
    booleanValue?: never;
    $unknown: [string, any];
  }
  interface Visitor<T> {
    stringValue: (value: string) => T;
    integerValue: (value: string) => T;
    doubleValue: (value: string) => T;
    booleanValue: (value: string) => T;
    _: (name: string, value: any) => T;
  }
  const visit: <T>(value: AssetPropertyVariant, visitor: Visitor<T>) => T;
}
export interface AssetPropertyValue {
  value: AssetPropertyVariant | undefined;
  timestamp: AssetPropertyTimestamp | undefined;
  quality?: string | undefined;
}
export interface PutAssetPropertyValueEntry {
  entryId?: string | undefined;
  assetId?: string | undefined;
  propertyId?: string | undefined;
  propertyAlias?: string | undefined;
  propertyValues: AssetPropertyValue[] | undefined;
}
export interface IotSiteWiseAction {
  putAssetPropertyValueEntries: PutAssetPropertyValueEntry[] | undefined;
  roleArn: string | undefined;
}
export interface KafkaActionHeader {
  key: string | undefined;
  value: string | undefined;
}
export interface KafkaAction {
  destinationArn: string | undefined;
  topic: string | undefined;
  key?: string | undefined;
  partition?: string | undefined;
  clientProperties: Record<string, string> | undefined;
  headers?: KafkaActionHeader[] | undefined;
}
export interface KinesisAction {
  roleArn: string | undefined;
  streamName: string | undefined;
  partitionKey?: string | undefined;
}
export interface LambdaAction {
  functionArn: string | undefined;
}
export interface LocationTimestamp {
  value: string | undefined;
  unit?: string | undefined;
}
export interface LocationAction {
  roleArn: string | undefined;
  trackerName: string | undefined;
  deviceId: string | undefined;
  timestamp?: LocationTimestamp | undefined;
  latitude: string | undefined;
  longitude: string | undefined;
}
export interface OpenSearchAction {
  roleArn: string | undefined;
  endpoint: string | undefined;
  index: string | undefined;
  type: string | undefined;
  id: string | undefined;
}
export interface UserProperty {
  key: string | undefined;
  value: string | undefined;
}
export interface MqttHeaders {
  payloadFormatIndicator?: string | undefined;
  contentType?: string | undefined;
  responseTopic?: string | undefined;
  correlationData?: string | undefined;
  messageExpiry?: string | undefined;
  userProperties?: UserProperty[] | undefined;
}
export interface RepublishAction {
  roleArn: string | undefined;
  topic: string | undefined;
  qos?: number | undefined;
  headers?: MqttHeaders | undefined;
}
export declare const CannedAccessControlList: {
  readonly AuthenticatedRead: "authenticated-read";
  readonly AwsExecRead: "aws-exec-read";
  readonly BucketOwnerFullControl: "bucket-owner-full-control";
  readonly BucketOwnerRead: "bucket-owner-read";
  readonly LogDeliveryWrite: "log-delivery-write";
  readonly Private: "private";
  readonly PublicRead: "public-read";
  readonly PublicReadWrite: "public-read-write";
};
export type CannedAccessControlList =
  (typeof CannedAccessControlList)[keyof typeof CannedAccessControlList];
export interface S3Action {
  roleArn: string | undefined;
  bucketName: string | undefined;
  key: string | undefined;
  cannedAcl?: CannedAccessControlList | undefined;
}
export interface SalesforceAction {
  token: string | undefined;
  url: string | undefined;
}
export declare const MessageFormat: {
  readonly JSON: "JSON";
  readonly RAW: "RAW";
};
export type MessageFormat = (typeof MessageFormat)[keyof typeof MessageFormat];
export interface SnsAction {
  targetArn: string | undefined;
  roleArn: string | undefined;
  messageFormat?: MessageFormat | undefined;
}
export interface SqsAction {
  roleArn: string | undefined;
  queueUrl: string | undefined;
  useBase64?: boolean | undefined;
}
export interface StepFunctionsAction {
  executionNamePrefix?: string | undefined;
  stateMachineName: string | undefined;
  roleArn: string | undefined;
}
export interface TimestreamDimension {
  name: string | undefined;
  value: string | undefined;
}
export interface TimestreamTimestamp {
  value: string | undefined;
  unit: string | undefined;
}
export interface TimestreamAction {
  roleArn: string | undefined;
  databaseName: string | undefined;
  tableName: string | undefined;
  dimensions: TimestreamDimension[] | undefined;
  timestamp?: TimestreamTimestamp | undefined;
}
export interface Action {
  dynamoDB?: DynamoDBAction | undefined;
  dynamoDBv2?: DynamoDBv2Action | undefined;
  lambda?: LambdaAction | undefined;
  sns?: SnsAction | undefined;
  sqs?: SqsAction | undefined;
  kinesis?: KinesisAction | undefined;
  republish?: RepublishAction | undefined;
  s3?: S3Action | undefined;
  firehose?: FirehoseAction | undefined;
  cloudwatchMetric?: CloudwatchMetricAction | undefined;
  cloudwatchAlarm?: CloudwatchAlarmAction | undefined;
  cloudwatchLogs?: CloudwatchLogsAction | undefined;
  elasticsearch?: ElasticsearchAction | undefined;
  salesforce?: SalesforceAction | undefined;
  iotAnalytics?: IotAnalyticsAction | undefined;
  iotEvents?: IotEventsAction | undefined;
  iotSiteWise?: IotSiteWiseAction | undefined;
  stepFunctions?: StepFunctionsAction | undefined;
  timestream?: TimestreamAction | undefined;
  http?: HttpAction | undefined;
  kafka?: KafkaAction | undefined;
  openSearch?: OpenSearchAction | undefined;
  location?: LocationAction | undefined;
}
export declare const ActionType: {
  readonly CONNECT: "CONNECT";
  readonly PUBLISH: "PUBLISH";
  readonly RECEIVE: "RECEIVE";
  readonly SUBSCRIBE: "SUBSCRIBE";
};
export type ActionType = (typeof ActionType)[keyof typeof ActionType];
export declare const ComparisonOperator: {
  readonly GREATER_THAN: "greater-than";
  readonly GREATER_THAN_EQUALS: "greater-than-equals";
  readonly IN_CIDR_SET: "in-cidr-set";
  readonly IN_PORT_SET: "in-port-set";
  readonly IN_SET: "in-set";
  readonly LESS_THAN: "less-than";
  readonly LESS_THAN_EQUALS: "less-than-equals";
  readonly NOT_IN_CIDR_SET: "not-in-cidr-set";
  readonly NOT_IN_PORT_SET: "not-in-port-set";
  readonly NOT_IN_SET: "not-in-set";
};
export type ComparisonOperator =
  (typeof ComparisonOperator)[keyof typeof ComparisonOperator];
export declare const ConfidenceLevel: {
  readonly HIGH: "HIGH";
  readonly LOW: "LOW";
  readonly MEDIUM: "MEDIUM";
};
export type ConfidenceLevel =
  (typeof ConfidenceLevel)[keyof typeof ConfidenceLevel];
export interface MachineLearningDetectionConfig {
  confidenceLevel: ConfidenceLevel | undefined;
}
export interface StatisticalThreshold {
  statistic?: string | undefined;
}
export interface MetricValue {
  count?: number | undefined;
  cidrs?: string[] | undefined;
  ports?: number[] | undefined;
  number?: number | undefined;
  numbers?: number[] | undefined;
  strings?: string[] | undefined;
}
export interface BehaviorCriteria {
  comparisonOperator?: ComparisonOperator | undefined;
  value?: MetricValue | undefined;
  durationSeconds?: number | undefined;
  consecutiveDatapointsToAlarm?: number | undefined;
  consecutiveDatapointsToClear?: number | undefined;
  statisticalThreshold?: StatisticalThreshold | undefined;
  mlDetectionConfig?: MachineLearningDetectionConfig | undefined;
}
export declare const DimensionValueOperator: {
  readonly IN: "IN";
  readonly NOT_IN: "NOT_IN";
};
export type DimensionValueOperator =
  (typeof DimensionValueOperator)[keyof typeof DimensionValueOperator];
export interface MetricDimension {
  dimensionName: string | undefined;
  operator?: DimensionValueOperator | undefined;
}
export interface Behavior {
  name: string | undefined;
  metric?: string | undefined;
  metricDimension?: MetricDimension | undefined;
  criteria?: BehaviorCriteria | undefined;
  suppressAlerts?: boolean | undefined;
  exportMetric?: boolean | undefined;
}
export declare const VerificationState: {
  readonly BENIGN_POSITIVE: "BENIGN_POSITIVE";
  readonly FALSE_POSITIVE: "FALSE_POSITIVE";
  readonly TRUE_POSITIVE: "TRUE_POSITIVE";
  readonly UNKNOWN: "UNKNOWN";
};
export type VerificationState =
  (typeof VerificationState)[keyof typeof VerificationState];
export interface ViolationEventAdditionalInfo {
  confidenceLevel?: ConfidenceLevel | undefined;
}
export interface ActiveViolation {
  violationId?: string | undefined;
  thingName?: string | undefined;
  securityProfileName?: string | undefined;
  behavior?: Behavior | undefined;
  lastViolationValue?: MetricValue | undefined;
  violationEventAdditionalInfo?: ViolationEventAdditionalInfo | undefined;
  verificationState?: VerificationState | undefined;
  verificationStateDescription?: string | undefined;
  lastViolationTime?: Date | undefined;
  violationStartTime?: Date | undefined;
}
export interface MetricToRetain {
  metric: string | undefined;
  metricDimension?: MetricDimension | undefined;
  exportMetric?: boolean | undefined;
}
export interface AddThingsToThingGroupParams {
  thingGroupNames: string[] | undefined;
  overrideDynamicGroups?: boolean | undefined;
}
export interface AddThingToBillingGroupRequest {
  billingGroupName?: string | undefined;
  billingGroupArn?: string | undefined;
  thingName?: string | undefined;
  thingArn?: string | undefined;
}
export interface AddThingToBillingGroupResponse {}
export interface AddThingToThingGroupRequest {
  thingGroupName?: string | undefined;
  thingGroupArn?: string | undefined;
  thingName?: string | undefined;
  thingArn?: string | undefined;
  overrideDynamicGroups?: boolean | undefined;
}
export interface AddThingToThingGroupResponse {}
export declare const AggregationTypeName: {
  readonly CARDINALITY: "Cardinality";
  readonly PERCENTILES: "Percentiles";
  readonly STATISTICS: "Statistics";
};
export type AggregationTypeName =
  (typeof AggregationTypeName)[keyof typeof AggregationTypeName];
export interface AggregationType {
  name: AggregationTypeName | undefined;
  values?: string[] | undefined;
}
export interface AlertTarget {
  alertTargetArn: string | undefined;
  roleArn: string | undefined;
}
export declare const AlertTargetType: {
  readonly SNS: "SNS";
};
export type AlertTargetType =
  (typeof AlertTargetType)[keyof typeof AlertTargetType];
export interface Policy {
  policyName?: string | undefined;
  policyArn?: string | undefined;
}
export interface Allowed {
  policies?: Policy[] | undefined;
}
export declare const ApplicationProtocol: {
  readonly DEFAULT: "DEFAULT";
  readonly HTTPS: "HTTPS";
  readonly MQTT_WSS: "MQTT_WSS";
  readonly SECURE_MQTT: "SECURE_MQTT";
};
export type ApplicationProtocol =
  (typeof ApplicationProtocol)[keyof typeof ApplicationProtocol];
export interface S3Location {
  bucket?: string | undefined;
  key?: string | undefined;
  version?: string | undefined;
}
export interface Sbom {
  s3Location?: S3Location | undefined;
}
export interface AssociateSbomWithPackageVersionRequest {
  packageName: string | undefined;
  versionName: string | undefined;
  sbom: Sbom | undefined;
  clientToken?: string | undefined;
}
export declare const SbomValidationStatus: {
  readonly FAILED: "FAILED";
  readonly IN_PROGRESS: "IN_PROGRESS";
  readonly SUCCEEDED: "SUCCEEDED";
};
export type SbomValidationStatus =
  (typeof SbomValidationStatus)[keyof typeof SbomValidationStatus];
export interface AssociateSbomWithPackageVersionResponse {
  packageName?: string | undefined;
  versionName?: string | undefined;
  sbom?: Sbom | undefined;
  sbomValidationStatus?: SbomValidationStatus | undefined;
}
export declare class ConflictException extends __BaseException {
  readonly name: "ConflictException";
  readonly $fault: "client";
  resourceId?: string | undefined;
  constructor(opts: __ExceptionOptionType<ConflictException, __BaseException>);
}
export declare class InternalServerException extends __BaseException {
  readonly name: "InternalServerException";
  readonly $fault: "server";
  constructor(
    opts: __ExceptionOptionType<InternalServerException, __BaseException>
  );
}
export declare class ServiceQuotaExceededException extends __BaseException {
  readonly name: "ServiceQuotaExceededException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<ServiceQuotaExceededException, __BaseException>
  );
}
export declare class ValidationException extends __BaseException {
  readonly name: "ValidationException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<ValidationException, __BaseException>
  );
}
export interface AssociateTargetsWithJobRequest {
  targets: string[] | undefined;
  jobId: string | undefined;
  comment?: string | undefined;
  namespaceId?: string | undefined;
}
export interface AssociateTargetsWithJobResponse {
  jobArn?: string | undefined;
  jobId?: string | undefined;
  description?: string | undefined;
}
export declare class LimitExceededException extends __BaseException {
  readonly name: "LimitExceededException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<LimitExceededException, __BaseException>
  );
}
export interface AttachPolicyRequest {
  policyName: string | undefined;
  target: string | undefined;
}
export interface AttachPrincipalPolicyRequest {
  policyName: string | undefined;
  principal: string | undefined;
}
export interface AttachSecurityProfileRequest {
  securityProfileName: string | undefined;
  securityProfileTargetArn: string | undefined;
}
export interface AttachSecurityProfileResponse {}
export declare class VersionConflictException extends __BaseException {
  readonly name: "VersionConflictException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<VersionConflictException, __BaseException>
  );
}
export declare const ThingPrincipalType: {
  readonly EXCLUSIVE_THING: "EXCLUSIVE_THING";
  readonly NON_EXCLUSIVE_THING: "NON_EXCLUSIVE_THING";
};
export type ThingPrincipalType =
  (typeof ThingPrincipalType)[keyof typeof ThingPrincipalType];
export interface AttachThingPrincipalRequest {
  thingName: string | undefined;
  principal: string | undefined;
  thingPrincipalType?: ThingPrincipalType | undefined;
}
export interface AttachThingPrincipalResponse {}
export interface AttributePayload {
  attributes?: Record<string, string> | undefined;
  merge?: boolean | undefined;
}
export declare const ConfigName: {
  readonly CERT_AGE_THRESHOLD_IN_DAYS: "CERT_AGE_THRESHOLD_IN_DAYS";
  readonly CERT_EXPIRATION_THRESHOLD_IN_DAYS: "CERT_EXPIRATION_THRESHOLD_IN_DAYS";
};
export type ConfigName = (typeof ConfigName)[keyof typeof ConfigName];
export interface AuditCheckConfiguration {
  enabled?: boolean | undefined;
  configuration?: Partial<Record<ConfigName, string>> | undefined;
}
export declare const AuditCheckRunStatus: {
  readonly CANCELED: "CANCELED";
  readonly COMPLETED_COMPLIANT: "COMPLETED_COMPLIANT";
  readonly COMPLETED_NON_COMPLIANT: "COMPLETED_NON_COMPLIANT";
  readonly FAILED: "FAILED";
  readonly IN_PROGRESS: "IN_PROGRESS";
  readonly WAITING_FOR_DATA_COLLECTION: "WAITING_FOR_DATA_COLLECTION";
};
export type AuditCheckRunStatus =
  (typeof AuditCheckRunStatus)[keyof typeof AuditCheckRunStatus];
export interface AuditCheckDetails {
  checkRunStatus?: AuditCheckRunStatus | undefined;
  checkCompliant?: boolean | undefined;
  totalResourcesCount?: number | undefined;
  nonCompliantResourcesCount?: number | undefined;
  suppressedNonCompliantResourcesCount?: number | undefined;
  errorCode?: string | undefined;
  message?: string | undefined;
}
export interface IssuerCertificateIdentifier {
  issuerCertificateSubject?: string | undefined;
  issuerId?: string | undefined;
  issuerCertificateSerialNumber?: string | undefined;
}
export interface PolicyVersionIdentifier {
  policyName?: string | undefined;
  policyVersionId?: string | undefined;
}
export interface ResourceIdentifier {
  deviceCertificateId?: string | undefined;
  caCertificateId?: string | undefined;
  cognitoIdentityPoolId?: string | undefined;
  clientId?: string | undefined;
  policyVersionIdentifier?: PolicyVersionIdentifier | undefined;
  account?: string | undefined;
  iamRoleArn?: string | undefined;
  roleAliasArn?: string | undefined;
  issuerCertificateIdentifier?: IssuerCertificateIdentifier | undefined;
  deviceCertificateArn?: string | undefined;
}
export declare const ResourceType: {
  readonly ACCOUNT_SETTINGS: "ACCOUNT_SETTINGS";
  readonly CA_CERTIFICATE: "CA_CERTIFICATE";
  readonly CLIENT_ID: "CLIENT_ID";
  readonly COGNITO_IDENTITY_POOL: "COGNITO_IDENTITY_POOL";
  readonly DEVICE_CERTIFICATE: "DEVICE_CERTIFICATE";
  readonly IAM_ROLE: "IAM_ROLE";
  readonly IOT_POLICY: "IOT_POLICY";
  readonly ISSUER_CERTIFICATE: "ISSUER_CERTIFICATE";
  readonly ROLE_ALIAS: "ROLE_ALIAS";
};
export type ResourceType = (typeof ResourceType)[keyof typeof ResourceType];
export interface NonCompliantResource {
  resourceType?: ResourceType | undefined;
  resourceIdentifier?: ResourceIdentifier | undefined;
  additionalInfo?: Record<string, string> | undefined;
}
export interface RelatedResource {
  resourceType?: ResourceType | undefined;
  resourceIdentifier?: ResourceIdentifier | undefined;
  additionalInfo?: Record<string, string> | undefined;
}
export declare const AuditFindingSeverity: {
  readonly CRITICAL: "CRITICAL";
  readonly HIGH: "HIGH";
  readonly LOW: "LOW";
  readonly MEDIUM: "MEDIUM";
};
export type AuditFindingSeverity =
  (typeof AuditFindingSeverity)[keyof typeof AuditFindingSeverity];
export interface AuditFinding {
  findingId?: string | undefined;
  taskId?: string | undefined;
  checkName?: string | undefined;
  taskStartTime?: Date | undefined;
  findingTime?: Date | undefined;
  severity?: AuditFindingSeverity | undefined;
  nonCompliantResource?: NonCompliantResource | undefined;
  relatedResources?: RelatedResource[] | undefined;
  reasonForNonCompliance?: string | undefined;
  reasonForNonComplianceCode?: string | undefined;
  isSuppressed?: boolean | undefined;
}
export declare const AuditFrequency: {
  readonly BIWEEKLY: "BIWEEKLY";
  readonly DAILY: "DAILY";
  readonly MONTHLY: "MONTHLY";
  readonly WEEKLY: "WEEKLY";
};
export type AuditFrequency =
  (typeof AuditFrequency)[keyof typeof AuditFrequency];
export declare const AuditMitigationActionsExecutionStatus: {
  readonly CANCELED: "CANCELED";
  readonly COMPLETED: "COMPLETED";
  readonly FAILED: "FAILED";
  readonly IN_PROGRESS: "IN_PROGRESS";
  readonly PENDING: "PENDING";
  readonly SKIPPED: "SKIPPED";
};
export type AuditMitigationActionsExecutionStatus =
  (typeof AuditMitigationActionsExecutionStatus)[keyof typeof AuditMitigationActionsExecutionStatus];
export interface AuditMitigationActionExecutionMetadata {
  taskId?: string | undefined;
  findingId?: string | undefined;
  actionName?: string | undefined;
  actionId?: string | undefined;
  status?: AuditMitigationActionsExecutionStatus | undefined;
  startTime?: Date | undefined;
  endTime?: Date | undefined;
  errorCode?: string | undefined;
  message?: string | undefined;
}
export declare const AuditMitigationActionsTaskStatus: {
  readonly CANCELED: "CANCELED";
  readonly COMPLETED: "COMPLETED";
  readonly FAILED: "FAILED";
  readonly IN_PROGRESS: "IN_PROGRESS";
};
export type AuditMitigationActionsTaskStatus =
  (typeof AuditMitigationActionsTaskStatus)[keyof typeof AuditMitigationActionsTaskStatus];
export interface AuditMitigationActionsTaskMetadata {
  taskId?: string | undefined;
  startTime?: Date | undefined;
  taskStatus?: AuditMitigationActionsTaskStatus | undefined;
}
export interface TaskStatisticsForAuditCheck {
  totalFindingsCount?: number | undefined;
  failedFindingsCount?: number | undefined;
  succeededFindingsCount?: number | undefined;
  skippedFindingsCount?: number | undefined;
  canceledFindingsCount?: number | undefined;
}
export interface AuditMitigationActionsTaskTarget {
  auditTaskId?: string | undefined;
  findingIds?: string[] | undefined;
  auditCheckToReasonCodeFilter?: Record<string, string[]> | undefined;
}
export interface AuditNotificationTarget {
  targetArn?: string | undefined;
  roleArn?: string | undefined;
  enabled?: boolean | undefined;
}
export declare const AuditNotificationType: {
  readonly SNS: "SNS";
};
export type AuditNotificationType =
  (typeof AuditNotificationType)[keyof typeof AuditNotificationType];
export interface AuditSuppression {
  checkName: string | undefined;
  resourceIdentifier: ResourceIdentifier | undefined;
  expirationDate?: Date | undefined;
  suppressIndefinitely?: boolean | undefined;
  description?: string | undefined;
}
export declare const AuditTaskStatus: {
  readonly CANCELED: "CANCELED";
  readonly COMPLETED: "COMPLETED";
  readonly FAILED: "FAILED";
  readonly IN_PROGRESS: "IN_PROGRESS";
};
export type AuditTaskStatus =
  (typeof AuditTaskStatus)[keyof typeof AuditTaskStatus];
export declare const AuditTaskType: {
  readonly ON_DEMAND_AUDIT_TASK: "ON_DEMAND_AUDIT_TASK";
  readonly SCHEDULED_AUDIT_TASK: "SCHEDULED_AUDIT_TASK";
};
export type AuditTaskType = (typeof AuditTaskType)[keyof typeof AuditTaskType];
export interface AuditTaskMetadata {
  taskId?: string | undefined;
  taskStatus?: AuditTaskStatus | undefined;
  taskType?: AuditTaskType | undefined;
}
export declare const AuthDecision: {
  readonly ALLOWED: "ALLOWED";
  readonly EXPLICIT_DENY: "EXPLICIT_DENY";
  readonly IMPLICIT_DENY: "IMPLICIT_DENY";
};
export type AuthDecision = (typeof AuthDecision)[keyof typeof AuthDecision];
export declare const AuthenticationType: {
  readonly AWS_SIGV4: "AWS_SIGV4";
  readonly AWS_X509: "AWS_X509";
  readonly CUSTOM_AUTH: "CUSTOM_AUTH";
  readonly CUSTOM_AUTH_X509: "CUSTOM_AUTH_X509";
  readonly DEFAULT: "DEFAULT";
};
export type AuthenticationType =
  (typeof AuthenticationType)[keyof typeof AuthenticationType];
export interface AuthInfo {
  actionType?: ActionType | undefined;
  resources: string[] | undefined;
}
export interface AuthorizerConfig {
  defaultAuthorizerName?: string | undefined;
  allowAuthorizerOverride?: boolean | undefined;
}
export declare const AuthorizerStatus: {
  readonly ACTIVE: "ACTIVE";
  readonly INACTIVE: "INACTIVE";
};
export type AuthorizerStatus =
  (typeof AuthorizerStatus)[keyof typeof AuthorizerStatus];
export interface AuthorizerDescription {
  authorizerName?: string | undefined;
  authorizerArn?: string | undefined;
  authorizerFunctionArn?: string | undefined;
  tokenKeyName?: string | undefined;
  tokenSigningPublicKeys?: Record<string, string> | undefined;
  status?: AuthorizerStatus | undefined;
  creationDate?: Date | undefined;
  lastModifiedDate?: Date | undefined;
  signingDisabled?: boolean | undefined;
  enableCachingForHttp?: boolean | undefined;
}
export interface AuthorizerSummary {
  authorizerName?: string | undefined;
  authorizerArn?: string | undefined;
}
export interface ExplicitDeny {
  policies?: Policy[] | undefined;
}
export interface ImplicitDeny {
  policies?: Policy[] | undefined;
}
export interface Denied {
  implicitDeny?: ImplicitDeny | undefined;
  explicitDeny?: ExplicitDeny | undefined;
}
export interface AuthResult {
  authInfo?: AuthInfo | undefined;
  allowed?: Allowed | undefined;
  denied?: Denied | undefined;
  authDecision?: AuthDecision | undefined;
  missingContextValues?: string[] | undefined;
}
export declare const AutoRegistrationStatus: {
  readonly DISABLE: "DISABLE";
  readonly ENABLE: "ENABLE";
};
export type AutoRegistrationStatus =
  (typeof AutoRegistrationStatus)[keyof typeof AutoRegistrationStatus];
export interface CancelAuditMitigationActionsTaskRequest {
  taskId: string | undefined;
}
export interface CancelAuditMitigationActionsTaskResponse {}
export interface CancelAuditTaskRequest {
  taskId: string | undefined;
}
export interface CancelAuditTaskResponse {}
export interface CancelCertificateTransferRequest {
  certificateId: string | undefined;
}
export interface CancelDetectMitigationActionsTaskRequest {
  taskId: string | undefined;
}
export interface CancelDetectMitigationActionsTaskResponse {}
export interface CancelJobRequest {
  jobId: string | undefined;
  reasonCode?: string | undefined;
  comment?: string | undefined;
  force?: boolean | undefined;
}
export interface CancelJobResponse {
  jobArn?: string | undefined;
  jobId?: string | undefined;
  description?: string | undefined;
}
export interface CancelJobExecutionRequest {
  jobId: string | undefined;
  thingName: string | undefined;
  force?: boolean | undefined;
  expectedVersion?: number | undefined;
  statusDetails?: Record<string, string> | undefined;
}
export declare class InvalidStateTransitionException extends __BaseException {
  readonly name: "InvalidStateTransitionException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<
      InvalidStateTransitionException,
      __BaseException
    >
  );
}
export interface ClearDefaultAuthorizerRequest {}
export interface ClearDefaultAuthorizerResponse {}
export interface ConfirmTopicRuleDestinationRequest {
  confirmationToken: string | undefined;
}
export interface ConfirmTopicRuleDestinationResponse {}
export declare class ConflictingResourceUpdateException extends __BaseException {
  readonly name: "ConflictingResourceUpdateException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<
      ConflictingResourceUpdateException,
      __BaseException
    >
  );
}
export declare class InternalException extends __BaseException {
  readonly name: "InternalException";
  readonly $fault: "server";
  constructor(opts: __ExceptionOptionType<InternalException, __BaseException>);
}
export interface CreateAuditSuppressionRequest {
  checkName: string | undefined;
  resourceIdentifier: ResourceIdentifier | undefined;
  expirationDate?: Date | undefined;
  suppressIndefinitely?: boolean | undefined;
  description?: string | undefined;
  clientRequestToken?: string | undefined;
}
export interface CreateAuditSuppressionResponse {}
export declare class ResourceAlreadyExistsException extends __BaseException {
  readonly name: "ResourceAlreadyExistsException";
  readonly $fault: "client";
  resourceId?: string | undefined;
  resourceArn?: string | undefined;
  constructor(
    opts: __ExceptionOptionType<ResourceAlreadyExistsException, __BaseException>
  );
}
export interface Tag {
  Key: string | undefined;
  Value?: string | undefined;
}
export interface CreateAuthorizerRequest {
  authorizerName: string | undefined;
  authorizerFunctionArn: string | undefined;
  tokenKeyName?: string | undefined;
  tokenSigningPublicKeys?: Record<string, string> | undefined;
  status?: AuthorizerStatus | undefined;
  tags?: Tag[] | undefined;
  signingDisabled?: boolean | undefined;
  enableCachingForHttp?: boolean | undefined;
}
export interface CreateAuthorizerResponse {
  authorizerName?: string | undefined;
  authorizerArn?: string | undefined;
}
export interface BillingGroupProperties {
  billingGroupDescription?: string | undefined;
}
export interface CreateBillingGroupRequest {
  billingGroupName: string | undefined;
  billingGroupProperties?: BillingGroupProperties | undefined;
  tags?: Tag[] | undefined;
}
export interface CreateBillingGroupResponse {
  billingGroupName?: string | undefined;
  billingGroupArn?: string | undefined;
  billingGroupId?: string | undefined;
}
export interface CreateCertificateFromCsrRequest {
  certificateSigningRequest: string | undefined;
  setAsActive?: boolean | undefined;
}
export interface CreateCertificateFromCsrResponse {
  certificateArn?: string | undefined;
  certificateId?: string | undefined;
  certificatePem?: string | undefined;
}
export declare const CertificateProviderOperation: {
  readonly CreateCertificateFromCsr: "CreateCertificateFromCsr";
};
export type CertificateProviderOperation =
  (typeof CertificateProviderOperation)[keyof typeof CertificateProviderOperation];
export interface CreateCertificateProviderRequest {
  certificateProviderName: string | undefined;
  lambdaFunctionArn: string | undefined;
  accountDefaultForOperations: CertificateProviderOperation[] | undefined;
  clientToken?: string | undefined;
  tags?: Tag[] | undefined;
}
export interface CreateCertificateProviderResponse {
  certificateProviderName?: string | undefined;
  certificateProviderArn?: string | undefined;
}
export interface CommandParameterValue {
  S?: string | undefined;
  B?: boolean | undefined;
  I?: number | undefined;
  L?: number | undefined;
  D?: number | undefined;
  BIN?: Uint8Array | undefined;
  UL?: string | undefined;
}
export interface CommandParameter {
  name: string | undefined;
  value?: CommandParameterValue | undefined;
  defaultValue?: CommandParameterValue | undefined;
  description?: string | undefined;
}
export declare const CommandNamespace: {
  readonly AWSIoT: "AWS-IoT";
  readonly AWSIoTFleetWise: "AWS-IoT-FleetWise";
};
export type CommandNamespace =
  (typeof CommandNamespace)[keyof typeof CommandNamespace];
export interface CommandPayload {
  content?: Uint8Array | undefined;
  contentType?: string | undefined;
}
export interface CreateCommandRequest {
  commandId: string | undefined;
  namespace?: CommandNamespace | undefined;
  displayName?: string | undefined;
  description?: string | undefined;
  payload?: CommandPayload | undefined;
  mandatoryParameters?: CommandParameter[] | undefined;
  roleArn?: string | undefined;
  tags?: Tag[] | undefined;
}
export interface CreateCommandResponse {
  commandId?: string | undefined;
  commandArn?: string | undefined;
}
export declare const CustomMetricType: {
  readonly IP_ADDRESS_LIST: "ip-address-list";
  readonly NUMBER: "number";
  readonly NUMBER_LIST: "number-list";
  readonly STRING_LIST: "string-list";
};
export type CustomMetricType =
  (typeof CustomMetricType)[keyof typeof CustomMetricType];
export interface CreateCustomMetricRequest {
  metricName: string | undefined;
  displayName?: string | undefined;
  metricType: CustomMetricType | undefined;
  tags?: Tag[] | undefined;
  clientRequestToken?: string | undefined;
}
export interface CreateCustomMetricResponse {
  metricName?: string | undefined;
  metricArn?: string | undefined;
}
export declare const DimensionType: {
  readonly TOPIC_FILTER: "TOPIC_FILTER";
};
export type DimensionType = (typeof DimensionType)[keyof typeof DimensionType];
export interface CreateDimensionRequest {
  name: string | undefined;
  type: DimensionType | undefined;
  stringValues: string[] | undefined;
  tags?: Tag[] | undefined;
  clientRequestToken?: string | undefined;
}
export interface CreateDimensionResponse {
  name?: string | undefined;
  arn?: string | undefined;
}
export declare class CertificateValidationException extends __BaseException {
  readonly name: "CertificateValidationException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<CertificateValidationException, __BaseException>
  );
}
export interface ClientCertificateConfig {
  clientCertificateCallbackArn?: string | undefined;
}
export interface ServerCertificateConfig {
  enableOCSPCheck?: boolean | undefined;
  ocspLambdaArn?: string | undefined;
  ocspAuthorizedResponderArn?: string | undefined;
}
export declare const ServiceType: {
  readonly CREDENTIAL_PROVIDER: "CREDENTIAL_PROVIDER";
  readonly DATA: "DATA";
  readonly JOBS: "JOBS";
};
export type ServiceType = (typeof ServiceType)[keyof typeof ServiceType];
export interface TlsConfig {
  securityPolicy?: string | undefined;
}
export interface CreateDomainConfigurationRequest {
  domainConfigurationName: string | undefined;
  domainName?: string | undefined;
  serverCertificateArns?: string[] | undefined;
  validationCertificateArn?: string | undefined;
  authorizerConfig?: AuthorizerConfig | undefined;
  serviceType?: ServiceType | undefined;
  tags?: Tag[] | undefined;
  tlsConfig?: TlsConfig | undefined;
  serverCertificateConfig?: ServerCertificateConfig | undefined;
  authenticationType?: AuthenticationType | undefined;
  applicationProtocol?: ApplicationProtocol | undefined;
  clientCertificateConfig?: ClientCertificateConfig | undefined;
}
export interface CreateDomainConfigurationResponse {
  domainConfigurationName?: string | undefined;
  domainConfigurationArn?: string | undefined;
}
export interface ThingGroupProperties {
  thingGroupDescription?: string | undefined;
  attributePayload?: AttributePayload | undefined;
}
export interface CreateDynamicThingGroupRequest {
  thingGroupName: string | undefined;
  thingGroupProperties?: ThingGroupProperties | undefined;
  indexName?: string | undefined;
  queryString: string | undefined;
  queryVersion?: string | undefined;
  tags?: Tag[] | undefined;
}
export interface CreateDynamicThingGroupResponse {
  thingGroupName?: string | undefined;
  thingGroupArn?: string | undefined;
  thingGroupId?: string | undefined;
  indexName?: string | undefined;
  queryString?: string | undefined;
  queryVersion?: string | undefined;
}
export declare class InvalidQueryException extends __BaseException {
  readonly name: "InvalidQueryException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<InvalidQueryException, __BaseException>
  );
}
export declare const FleetMetricUnit: {
  readonly Bits: "Bits";
  readonly BitsSecond: "Bits/Second";
  readonly Bytes: "Bytes";
  readonly BytesSecond: "Bytes/Second";
  readonly Count: "Count";
  readonly CountSecond: "Count/Second";
  readonly Gigabits: "Gigabits";
  readonly GigabitsSecond: "Gigabits/Second";
  readonly Gigabytes: "Gigabytes";
  readonly GigabytesSecond: "Gigabytes/Second";
  readonly Kilobits: "Kilobits";
  readonly KilobitsSecond: "Kilobits/Second";
  readonly Kilobytes: "Kilobytes";
  readonly KilobytesSecond: "Kilobytes/Second";
  readonly Megabits: "Megabits";
  readonly MegabitsSecond: "Megabits/Second";
  readonly Megabytes: "Megabytes";
  readonly MegabytesSecond: "Megabytes/Second";
  readonly Microseconds: "Microseconds";
  readonly Milliseconds: "Milliseconds";
  readonly None: "None";
  readonly Percent: "Percent";
  readonly Seconds: "Seconds";
  readonly Terabits: "Terabits";
  readonly TerabitsSecond: "Terabits/Second";
  readonly Terabytes: "Terabytes";
  readonly TerabytesSecond: "Terabytes/Second";
};
export type FleetMetricUnit =
  (typeof FleetMetricUnit)[keyof typeof FleetMetricUnit];
export interface CreateFleetMetricRequest {
  metricName: string | undefined;
  queryString: string | undefined;
  aggregationType: AggregationType | undefined;
  period: number | undefined;
  aggregationField: string | undefined;
  description?: string | undefined;
  queryVersion?: string | undefined;
  indexName?: string | undefined;
  unit?: FleetMetricUnit | undefined;
  tags?: Tag[] | undefined;
}
export interface CreateFleetMetricResponse {
  metricName?: string | undefined;
  metricArn?: string | undefined;
}
export declare class IndexNotReadyException extends __BaseException {
  readonly name: "IndexNotReadyException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<IndexNotReadyException, __BaseException>
  );
}
export declare class InvalidAggregationException extends __BaseException {
  readonly name: "InvalidAggregationException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<InvalidAggregationException, __BaseException>
  );
}
export declare const RetryableFailureType: {
  readonly ALL: "ALL";
  readonly FAILED: "FAILED";
  readonly TIMED_OUT: "TIMED_OUT";
};
export type RetryableFailureType =
  (typeof RetryableFailureType)[keyof typeof RetryableFailureType];
export interface RetryCriteria {
  failureType: RetryableFailureType | undefined;
  numberOfRetries: number | undefined;
}
export interface JobExecutionsRetryConfig {
  criteriaList: RetryCriteria[] | undefined;
}
export interface RateIncreaseCriteria {
  numberOfNotifiedThings?: number | undefined;
  numberOfSucceededThings?: number | undefined;
}
export interface ExponentialRolloutRate {
  baseRatePerMinute: number | undefined;
  incrementFactor: number | undefined;
  rateIncreaseCriteria: RateIncreaseCriteria | undefined;
}
export interface JobExecutionsRolloutConfig {
  maximumPerMinute?: number | undefined;
  exponentialRate?: ExponentialRolloutRate | undefined;
}
export interface PresignedUrlConfig {
  roleArn?: string | undefined;
  expiresInSec?: number | undefined;
}
export declare const JobEndBehavior: {
  readonly CANCEL: "CANCEL";
  readonly FORCE_CANCEL: "FORCE_CANCEL";
  readonly STOP_ROLLOUT: "STOP_ROLLOUT";
};
export type JobEndBehavior =
  (typeof JobEndBehavior)[keyof typeof JobEndBehavior];
export interface MaintenanceWindow {
  startTime: string | undefined;
  durationInMinutes: number | undefined;
}
export interface SchedulingConfig {
  startTime?: string | undefined;
  endTime?: string | undefined;
  endBehavior?: JobEndBehavior | undefined;
  maintenanceWindows?: MaintenanceWindow[] | undefined;
}
export declare const TargetSelection: {
  readonly CONTINUOUS: "CONTINUOUS";
  readonly SNAPSHOT: "SNAPSHOT";
};
export type TargetSelection =
  (typeof TargetSelection)[keyof typeof TargetSelection];
export interface TimeoutConfig {
  inProgressTimeoutInMinutes?: number | undefined;
}
export interface CreateJobRequest {
  jobId: string | undefined;
  targets: string[] | undefined;
  documentSource?: string | undefined;
  document?: string | undefined;
  description?: string | undefined;
  presignedUrlConfig?: PresignedUrlConfig | undefined;
  targetSelection?: TargetSelection | undefined;
  jobExecutionsRolloutConfig?: JobExecutionsRolloutConfig | undefined;
  abortConfig?: AbortConfig | undefined;
  timeoutConfig?: TimeoutConfig | undefined;
  tags?: Tag[] | undefined;
  namespaceId?: string | undefined;
  jobTemplateArn?: string | undefined;
  jobExecutionsRetryConfig?: JobExecutionsRetryConfig | undefined;
  documentParameters?: Record<string, string> | undefined;
  schedulingConfig?: SchedulingConfig | undefined;
  destinationPackageVersions?: string[] | undefined;
}
export interface CreateJobResponse {
  jobArn?: string | undefined;
  jobId?: string | undefined;
  description?: string | undefined;
}
export interface CreateJobTemplateRequest {
  jobTemplateId: string | undefined;
  jobArn?: string | undefined;
  documentSource?: string | undefined;
  document?: string | undefined;
  description: string | undefined;
  presignedUrlConfig?: PresignedUrlConfig | undefined;
  jobExecutionsRolloutConfig?: JobExecutionsRolloutConfig | undefined;
  abortConfig?: AbortConfig | undefined;
  timeoutConfig?: TimeoutConfig | undefined;
  tags?: Tag[] | undefined;
  jobExecutionsRetryConfig?: JobExecutionsRetryConfig | undefined;
  maintenanceWindows?: MaintenanceWindow[] | undefined;
  destinationPackageVersions?: string[] | undefined;
}
export interface CreateJobTemplateResponse {
  jobTemplateArn?: string | undefined;
  jobTemplateId?: string | undefined;
}
export interface CreateKeysAndCertificateRequest {
  setAsActive?: boolean | undefined;
}
export interface KeyPair {
  PublicKey?: string | undefined;
  PrivateKey?: string | undefined;
}
export interface CreateKeysAndCertificateResponse {
  certificateArn?: string | undefined;
  certificateId?: string | undefined;
  certificatePem?: string | undefined;
  keyPair?: KeyPair | undefined;
}
export declare const LogLevel: {
  readonly DEBUG: "DEBUG";
  readonly DISABLED: "DISABLED";
  readonly ERROR: "ERROR";
  readonly INFO: "INFO";
  readonly WARN: "WARN";
};
export type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];
export interface EnableIoTLoggingParams {
  roleArnForLogging: string | undefined;
  logLevel: LogLevel | undefined;
}
export interface PublishFindingToSnsParams {
  topicArn: string | undefined;
}
export declare const PolicyTemplateName: {
  readonly BLANK_POLICY: "BLANK_POLICY";
};
export type PolicyTemplateName =
  (typeof PolicyTemplateName)[keyof typeof PolicyTemplateName];
export interface ReplaceDefaultPolicyVersionParams {
  templateName: PolicyTemplateName | undefined;
}
export declare const CACertificateUpdateAction: {
  readonly DEACTIVATE: "DEACTIVATE";
};
export type CACertificateUpdateAction =
  (typeof CACertificateUpdateAction)[keyof typeof CACertificateUpdateAction];
export interface UpdateCACertificateParams {
  action: CACertificateUpdateAction | undefined;
}
export declare const DeviceCertificateUpdateAction: {
  readonly DEACTIVATE: "DEACTIVATE";
};
export type DeviceCertificateUpdateAction =
  (typeof DeviceCertificateUpdateAction)[keyof typeof DeviceCertificateUpdateAction];
export interface UpdateDeviceCertificateParams {
  action: DeviceCertificateUpdateAction | undefined;
}
export interface MitigationActionParams {
  updateDeviceCertificateParams?: UpdateDeviceCertificateParams | undefined;
  updateCACertificateParams?: UpdateCACertificateParams | undefined;
  addThingsToThingGroupParams?: AddThingsToThingGroupParams | undefined;
  replaceDefaultPolicyVersionParams?:
    | ReplaceDefaultPolicyVersionParams
    | undefined;
  enableIoTLoggingParams?: EnableIoTLoggingParams | undefined;
  publishFindingToSnsParams?: PublishFindingToSnsParams | undefined;
}
export interface CreateMitigationActionRequest {
  actionName: string | undefined;
  roleArn: string | undefined;
  actionParams: MitigationActionParams | undefined;
  tags?: Tag[] | undefined;
}
export interface CreateMitigationActionResponse {
  actionArn?: string | undefined;
  actionId?: string | undefined;
}
export declare const AwsJobAbortCriteriaAbortAction: {
  readonly CANCEL: "CANCEL";
};
export type AwsJobAbortCriteriaAbortAction =
  (typeof AwsJobAbortCriteriaAbortAction)[keyof typeof AwsJobAbortCriteriaAbortAction];
export declare const AwsJobAbortCriteriaFailureType: {
  readonly ALL: "ALL";
  readonly FAILED: "FAILED";
  readonly REJECTED: "REJECTED";
  readonly TIMED_OUT: "TIMED_OUT";
};
export type AwsJobAbortCriteriaFailureType =
  (typeof AwsJobAbortCriteriaFailureType)[keyof typeof AwsJobAbortCriteriaFailureType];
export interface AwsJobAbortCriteria {
  failureType: AwsJobAbortCriteriaFailureType | undefined;
  action: AwsJobAbortCriteriaAbortAction | undefined;
  thresholdPercentage: number | undefined;
  minNumberOfExecutedThings: number | undefined;
}
export interface AwsJobAbortConfig {
  abortCriteriaList: AwsJobAbortCriteria[] | undefined;
}
export interface AwsJobRateIncreaseCriteria {
  numberOfNotifiedThings?: number | undefined;
  numberOfSucceededThings?: number | undefined;
}
export interface AwsJobExponentialRolloutRate {
  baseRatePerMinute: number | undefined;
  incrementFactor: number | undefined;
  rateIncreaseCriteria: AwsJobRateIncreaseCriteria | undefined;
}
export interface AwsJobExecutionsRolloutConfig {
  maximumPerMinute?: number | undefined;
  exponentialRate?: AwsJobExponentialRolloutRate | undefined;
}
export interface AwsJobPresignedUrlConfig {
  expiresInSec?: number | undefined;
}
export interface AwsJobTimeoutConfig {
  inProgressTimeoutInMinutes?: number | undefined;
}
export interface CodeSigningCertificateChain {
  certificateName?: string | undefined;
  inlineDocument?: string | undefined;
}
export interface CodeSigningSignature {
  inlineDocument?: Uint8Array | undefined;
}
export interface CustomCodeSigning {
  signature?: CodeSigningSignature | undefined;
  certificateChain?: CodeSigningCertificateChain | undefined;
  hashAlgorithm?: string | undefined;
  signatureAlgorithm?: string | undefined;
}
export interface S3Destination {
  bucket?: string | undefined;
  prefix?: string | undefined;
}
export interface Destination {
  s3Destination?: S3Destination | undefined;
}
export interface SigningProfileParameter {
  certificateArn?: string | undefined;
  platform?: string | undefined;
  certificatePathOnDevice?: string | undefined;
}
export interface StartSigningJobParameter {
  signingProfileParameter?: SigningProfileParameter | undefined;
  signingProfileName?: string | undefined;
  destination?: Destination | undefined;
}
export interface CodeSigning {
  awsSignerJobId?: string | undefined;
  startSigningJobParameter?: StartSigningJobParameter | undefined;
  customCodeSigning?: CustomCodeSigning | undefined;
}
export interface _Stream {
  streamId?: string | undefined;
  fileId?: number | undefined;
}
export interface FileLocation {
  stream?: _Stream | undefined;
  s3Location?: S3Location | undefined;
}
export interface OTAUpdateFile {
  fileName?: string | undefined;
  fileType?: number | undefined;
  fileVersion?: string | undefined;
  fileLocation?: FileLocation | undefined;
  codeSigning?: CodeSigning | undefined;
  attributes?: Record<string, string> | undefined;
}
export declare const Protocol: {
  readonly HTTP: "HTTP";
  readonly MQTT: "MQTT";
};
export type Protocol = (typeof Protocol)[keyof typeof Protocol];
export interface CreateOTAUpdateRequest {
  otaUpdateId: string | undefined;
  description?: string | undefined;
  targets: string[] | undefined;
  protocols?: Protocol[] | undefined;
  targetSelection?: TargetSelection | undefined;
  awsJobExecutionsRolloutConfig?: AwsJobExecutionsRolloutConfig | undefined;
  awsJobPresignedUrlConfig?: AwsJobPresignedUrlConfig | undefined;
  awsJobAbortConfig?: AwsJobAbortConfig | undefined;
  awsJobTimeoutConfig?: AwsJobTimeoutConfig | undefined;
  files: OTAUpdateFile[] | undefined;
  roleArn: string | undefined;
  additionalParameters?: Record<string, string> | undefined;
  tags?: Tag[] | undefined;
}
export declare const OTAUpdateStatus: {
  readonly CREATE_COMPLETE: "CREATE_COMPLETE";
  readonly CREATE_FAILED: "CREATE_FAILED";
  readonly CREATE_IN_PROGRESS: "CREATE_IN_PROGRESS";
  readonly CREATE_PENDING: "CREATE_PENDING";
  readonly DELETE_FAILED: "DELETE_FAILED";
  readonly DELETE_IN_PROGRESS: "DELETE_IN_PROGRESS";
};
export type OTAUpdateStatus =
  (typeof OTAUpdateStatus)[keyof typeof OTAUpdateStatus];
export interface CreateOTAUpdateResponse {
  otaUpdateId?: string | undefined;
  awsIotJobId?: string | undefined;
  otaUpdateArn?: string | undefined;
  awsIotJobArn?: string | undefined;
  otaUpdateStatus?: OTAUpdateStatus | undefined;
}
export interface CreatePackageRequest {
  packageName: string | undefined;
  description?: string | undefined;
  tags?: Record<string, string> | undefined;
  clientToken?: string | undefined;
}
export interface CreatePackageResponse {
  packageName?: string | undefined;
  packageArn?: string | undefined;
  description?: string | undefined;
}
export interface PackageVersionArtifact {
  s3Location?: S3Location | undefined;
}
export interface CreatePackageVersionRequest {
  packageName: string | undefined;
  versionName: string | undefined;
  description?: string | undefined;
  attributes?: Record<string, string> | undefined;
  artifact?: PackageVersionArtifact | undefined;
  recipe?: string | undefined;
  tags?: Record<string, string> | undefined;
  clientToken?: string | undefined;
}
export declare const PackageVersionStatus: {
  readonly DEPRECATED: "DEPRECATED";
  readonly DRAFT: "DRAFT";
  readonly PUBLISHED: "PUBLISHED";
};
export type PackageVersionStatus =
  (typeof PackageVersionStatus)[keyof typeof PackageVersionStatus];
export interface CreatePackageVersionResponse {
  packageVersionArn?: string | undefined;
  packageName?: string | undefined;
  versionName?: string | undefined;
  description?: string | undefined;
  attributes?: Record<string, string> | undefined;
  status?: PackageVersionStatus | undefined;
  errorReason?: string | undefined;
}
export interface CreatePolicyRequest {
  policyName: string | undefined;
  policyDocument: string | undefined;
  tags?: Tag[] | undefined;
}
export interface CreatePolicyResponse {
  policyName?: string | undefined;
  policyArn?: string | undefined;
  policyDocument?: string | undefined;
  policyVersionId?: string | undefined;
}
export declare class MalformedPolicyException extends __BaseException {
  readonly name: "MalformedPolicyException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<MalformedPolicyException, __BaseException>
  );
}
export interface CreatePolicyVersionRequest {
  policyName: string | undefined;
  policyDocument: string | undefined;
  setAsDefault?: boolean | undefined;
}
export interface CreatePolicyVersionResponse {
  policyArn?: string | undefined;
  policyDocument?: string | undefined;
  policyVersionId?: string | undefined;
  isDefaultVersion?: boolean | undefined;
}
export declare class VersionsLimitExceededException extends __BaseException {
  readonly name: "VersionsLimitExceededException";
  readonly $fault: "client";
  constructor(
    opts: __ExceptionOptionType<VersionsLimitExceededException, __BaseException>
  );
}
export interface CreateProvisioningClaimRequest {
  templateName: string | undefined;
}
export interface CreateProvisioningClaimResponse {
  certificateId?: string | undefined;
  certificatePem?: string | undefined;
  keyPair?: KeyPair | undefined;
  expiration?: Date | undefined;
}
export interface ProvisioningHook {
  payloadVersion?: string | undefined;
  targetArn: string | undefined;
}
export declare const TemplateType: {
  readonly FLEET_PROVISIONING: "FLEET_PROVISIONING";
  readonly JITP: "JITP";
};
export type TemplateType = (typeof TemplateType)[keyof typeof TemplateType];
export interface CreateProvisioningTemplateRequest {
  templateName: string | undefined;
  description?: string | undefined;
  templateBody: string | undefined;
  enabled?: boolean | undefined;
  provisioningRoleArn: string | undefined;
  preProvisioningHook?: ProvisioningHook | undefined;
  tags?: Tag[] | undefined;
  type?: TemplateType | undefined;
}
export interface CreateProvisioningTemplateResponse {
  templateArn?: string | undefined;
  templateName?: string | undefined;
  defaultVersionId?: number | undefined;
}
export interface CreateProvisioningTemplateVersionRequest {
  templateName: string | undefined;
  templateBody: string | undefined;
  setAsDefault?: boolean | undefined;
}
export interface CreateProvisioningTemplateVersionResponse {
  templateArn?: string | undefined;
  templateName?: string | undefined;
  versionId?: number | undefined;
  isDefaultVersion?: boolean | undefined;
}
export interface CreateRoleAliasRequest {
  roleAlias: string | undefined;
  roleArn: string | undefined;
  credentialDurationSeconds?: number | undefined;
  tags?: Tag[] | undefined;
}
export interface CreateRoleAliasResponse {
  roleAlias?: string | undefined;
  roleAliasArn?: string | undefined;
}
export declare const DayOfWeek: {
  readonly FRI: "FRI";
  readonly MON: "MON";
  readonly SAT: "SAT";
  readonly SUN: "SUN";
  readonly THU: "THU";
  readonly TUE: "TUE";
  readonly WED: "WED";
};
export type DayOfWeek = (typeof DayOfWeek)[keyof typeof DayOfWeek];
export interface CreateScheduledAuditRequest {
  frequency: AuditFrequency | undefined;
  dayOfMonth?: string | undefined;
  dayOfWeek?: DayOfWeek | undefined;
  targetCheckNames: string[] | undefined;
  scheduledAuditName: string | undefined;
  tags?: Tag[] | undefined;
}
export interface CreateScheduledAuditResponse {
  scheduledAuditArn?: string | undefined;
}
export interface MetricsExportConfig {
  mqttTopic: string | undefined;
  roleArn: string | undefined;
}
export interface CreateSecurityProfileRequest {
  securityProfileName: string | undefined;
  securityProfileDescription?: string | undefined;
  behaviors?: Behavior[] | undefined;
  alertTargets?: Partial<Record<AlertTargetType, AlertTarget>> | undefined;
  additionalMetricsToRetain?: string[] | undefined;
  additionalMetricsToRetainV2?: MetricToRetain[] | undefined;
  tags?: Tag[] | undefined;
  metricsExportConfig?: MetricsExportConfig | undefined;
}
export interface CreateSecurityProfileResponse {
  securityProfileName?: string | undefined;
  securityProfileArn?: string | undefined;
}
export interface StreamFile {
  fileId?: number | undefined;
  s3Location?: S3Location | undefined;
}
export interface CreateStreamRequest {
  streamId: string | undefined;
  description?: string | undefined;
  files: StreamFile[] | undefined;
  roleArn: string | undefined;
  tags?: Tag[] | undefined;
}
export interface CreateStreamResponse {
  streamId?: string | undefined;
  streamArn?: string | undefined;
  description?: string | undefined;
  streamVersion?: number | undefined;
}
export interface CreateThingRequest {
  thingName: string | undefined;
  thingTypeName?: string | undefined;
  attributePayload?: AttributePayload | undefined;
  billingGroupName?: string | undefined;
}
export interface CreateThingResponse {
  thingName?: string | undefined;
  thingArn?: string | undefined;
  thingId?: string | undefined;
}
export interface CreateThingGroupRequest {
  thingGroupName: string | undefined;
  parentGroupName?: string | undefined;
  thingGroupProperties?: ThingGroupProperties | undefined;
  tags?: Tag[] | undefined;
}
export interface CreateThingGroupResponse {
  thingGroupName?: string | undefined;
  thingGroupArn?: string | undefined;
  thingGroupId?: string | undefined;
}
export interface PropagatingAttribute {
  userPropertyKey?: string | undefined;
  thingAttribute?: string | undefined;
  connectionAttribute?: string | undefined;
}
export interface Mqtt5Configuration {
  propagatingAttributes?: PropagatingAttribute[] | undefined;
}
export interface ThingTypeProperties {
  thingTypeDescription?: string | undefined;
  searchableAttributes?: string[] | undefined;
  mqtt5Configuration?: Mqtt5Configuration | undefined;
}
export interface CreateThingTypeRequest {
  thingTypeName: string | undefined;
  thingTypeProperties?: ThingTypeProperties | undefined;
  tags?: Tag[] | undefined;
}
export interface CreateThingTypeResponse {
  thingTypeName?: string | undefined;
  thingTypeArn?: string | undefined;
  thingTypeId?: string | undefined;
}
export interface TopicRulePayload {
  sql: string | undefined;
  description?: string | undefined;
  actions: Action[] | undefined;
  ruleDisabled?: boolean | undefined;
  awsIotSqlVersion?: string | undefined;
  errorAction?: Action | undefined;
}
export interface CreateTopicRuleRequest {
  ruleName: string | undefined;
  topicRulePayload: TopicRulePayload | undefined;
  tags?: string | undefined;
}
export declare class SqlParseException extends __BaseException {
  readonly name: "SqlParseException";
  readonly $fault: "client";
  constructor(opts: __ExceptionOptionType<SqlParseException, __BaseException>);
}
export interface HttpUrlDestinationConfiguration {
  confirmationUrl: string | undefined;
}
export interface VpcDestinationConfiguration {
  subnetIds: string[] | undefined;
  securityGroups?: string[] | undefined;
  vpcId: string | undefined;
  roleArn: string | undefined;
}
export interface TopicRuleDestinationConfiguration {
  httpUrlConfiguration?: HttpUrlDestinationConfiguration | undefined;
  vpcConfiguration?: VpcDestinationConfiguration | undefined;
}
export interface CreateTopicRuleDestinationRequest {
  destinationConfiguration: TopicRuleDestinationConfiguration | undefined;
}
export interface HttpUrlDestinationProperties {
  confirmationUrl?: string | undefined;
}
export declare const TopicRuleDestinationStatus: {
  readonly DELETING: "DELETING";
  readonly DISABLED: "DISABLED";
  readonly ENABLED: "ENABLED";
  readonly ERROR: "ERROR";
  readonly IN_PROGRESS: "IN_PROGRESS";
};
export type TopicRuleDestinationStatus =
  (typeof TopicRuleDestinationStatus)[keyof typeof TopicRuleDestinationStatus];
export declare const KeyPairFilterSensitiveLog: (obj: KeyPair) => any;
export declare const CreateKeysAndCertificateResponseFilterSensitiveLog: (
  obj: CreateKeysAndCertificateResponse
) => any;
export declare const CreatePackageRequestFilterSensitiveLog: (
  obj: CreatePackageRequest
) => any;
export declare const CreatePackageResponseFilterSensitiveLog: (
  obj: CreatePackageResponse
) => any;
export declare const CreatePackageVersionRequestFilterSensitiveLog: (
  obj: CreatePackageVersionRequest
) => any;
export declare const CreatePackageVersionResponseFilterSensitiveLog: (
  obj: CreatePackageVersionResponse
) => any;
export declare const CreateProvisioningClaimResponseFilterSensitiveLog: (
  obj: CreateProvisioningClaimResponse
) => any;
