export interface Tag {
    /** The key of the tag. */
    Key: string;
    /** The value of the tag. */
    Value?: string;
}
export interface Filters {
    /** Specify one or more ExtendedKeyUsage extension values. */
    extendedKeyUsage?: 'TLS_WEB_SERVER_AUTHENTICATION' | 'TLS_WEB_CLIENT_AUTHENTICATION' | 'CODE_SIGNING' | 'EMAIL_PROTECTION' | 'TIME_STAMPING' | 'OCSP_SIGNING' | 'IPSEC_END_SYSTEM' | 'IPSEC_TUNNEL' | 'IPSEC_USER' | 'ANY' | 'NONE' | 'CUSTOM'[];
    /** Specify one or more KeyUsage extension values. */
    keyUsage?: 'DIGITAL_SIGNATURE' | 'NON_REPUDIATION' | 'KEY_ENCIPHERMENT' | 'DATA_ENCIPHERMENT' | 'KEY_AGREEMENT' | 'CERTIFICATE_SIGNING' | 'CRL_SIGNING' | 'ENCIPHER_ONLY' | 'DECIPHER_ONLY' | 'ANY' | 'CUSTOM'[];
    /** Specify one or more algorithms that can be used to generate key pairs. Default filtering returns only RSA_1024 and RSA_2048 certificates that have at least one domain. To return other certificate type */
    keyTypes?: 'RSA_1024' | 'RSA_2048' | 'RSA_3072' | 'RSA_4096' | 'EC_prime256v1' | 'EC_secp384r1' | 'EC_secp521r1'[];
    /** Specify ENABLED or DISABLED to identify certificates that can be exported. */
    exportOption?: 'ENABLED' | 'DISABLED';
    /** Identifies the Amazon Web Services service that manages the certificate issued by ACM. */
    managedBy?: 'CLOUDFRONT';
}
export interface ExpiryEventsConfiguration {
    /** Specifies the number of days prior to certificate expiration when ACM starts generating EventBridge events. ACM sends one event per day per certificate until the certificate expires. By default, accou */
    DaysBeforeExpiry?: number;
}
export interface DomainValidationOption {
    /** A fully qualified domain name (FQDN) in the certificate request. */
    DomainName: string;
    /** The domain name that you want ACM to use to send you validation emails. This domain name is the suffix of the email addresses that you want ACM to use. This must be the same as the DomainName value or */
    ValidationDomain: string;
}
export interface CertificateOptions {
    /** You can opt out of certificate transparency logging by specifying the DISABLED option. Opt in by specifying ENABLED. */
    CertificateTransparencyLoggingPreference?: 'ENABLED' | 'DISABLED';
    /** You can opt in to allow the export of your certificates by specifying ENABLED. */
    Export?: 'ENABLED' | 'DISABLED';
}
export interface AddTagsToCertificateInput {
    /** String that contains the ARN of the ACM certificate to which the tag is to be applied. This must be of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For mo */
    CertificateArn: string;
    /** The key-value pair that defines the tag. The tag value is optional. */
    Tags: Tag[];
}
export interface DeleteCertificateInput {
    /** String that contains the ARN of the ACM certificate to be deleted. This must be of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about */
    CertificateArn: string;
}
export interface DescribeCertificateInput {
    /** The Amazon Resource Name (ARN) of the ACM certificate. The ARN must have the following form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about */
    CertificateArn: string;
}
export interface ExportCertificateInput {
    /** An Amazon Resource Name (ARN) of the issued certificate. This must be of the form: arn:aws:acm:region:account:certificate/12345678-1234-1234-1234-123456789012 */
    CertificateArn: string;
    /** Passphrase to associate with the encrypted exported private key. When creating your passphrase, you can use any ASCII character except #, $, or %. If you want to later decrypt the private key, you mus */
    Passphrase: string;
}
export interface GetCertificateInput {
    /** String that contains a certificate ARN in the following format: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Na */
    CertificateArn: string;
}
export interface ImportCertificateInput {
    /** The certificate to import. */
    Certificate: string;
    /** The private key that matches the public key in the certificate. */
    PrivateKey: string;
    /** The Amazon Resource Name (ARN) of an imported certificate to replace. To import a new certificate, omit this field. */
    CertificateArn?: string;
    /** The PEM encoded certificate chain. */
    CertificateChain?: string;
    /** One or more resource tags to associate with the imported certificate. Note: You cannot apply tags when reimporting a certificate. */
    Tags?: Tag[];
}
export interface ListCertificatesInput {
    /** Filter the certificate list by status value. */
    CertificateStatuses?: 'PENDING_VALIDATION' | 'ISSUED' | 'INACTIVE' | 'EXPIRED' | 'VALIDATION_TIMED_OUT' | 'REVOKED' | 'FAILED'[];
    /** Filter the certificate list. For more information, see the Filters structure. */
    Includes?: Filters;
    /** Use this parameter when paginating results to specify the maximum number of items to return in the response. If additional items exist beyond the number you specify, the NextToken element is sent in t */
    MaxItems?: number;
    /** Use this parameter only when paginating results and only in a subsequent request after you receive a response with truncated results. Set it to the value of NextToken from the response you just receiv */
    NextToken?: string;
    /** Specifies the field to sort results by. If you specify SortBy, you must also specify SortOrder. */
    SortBy?: 'CREATED_AT';
    /** Specifies the order of sorted results. If you specify SortOrder, you must also specify SortBy. */
    SortOrder?: 'ASCENDING' | 'DESCENDING';
}
export interface ListTagsForCertificateInput {
    /** String that contains the ARN of the ACM certificate for which you want to list the tags. This must have the following form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-12345678 */
    CertificateArn: string;
}
export interface PutAccountConfigurationInput {
    /** Customer-chosen string used to distinguish between calls to PutAccountConfiguration. Idempotency tokens time out after one hour. If you call PutAccountConfiguration multiple times with the same unexpi */
    IdempotencyToken: string;
    /** Specifies expiration events associated with an account. */
    ExpiryEvents?: ExpiryEventsConfiguration;
}
export interface RemoveTagsFromCertificateInput {
    /** String that contains the ARN of the ACM Certificate with one or more tags that you want to remove. This must be of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-1234567 */
    CertificateArn: string;
    /** The key-value pair that defines the tag to remove. */
    Tags: Tag[];
}
export interface RenewCertificateInput {
    /** String that contains the ARN of the ACM certificate to be renewed. This must be of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about */
    CertificateArn: string;
}
export interface RequestCertificateInput {
    /** Fully qualified domain name (FQDN), such as www.example.com, that you want to secure with an ACM certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the sa */
    DomainName: string;
    /** The Amazon Resource Name (ARN) of the private certificate authority (CA) that will be used to issue the certificate. If you do not provide an ARN and you are trying to request a private certificate, A */
    CertificateAuthorityArn?: string;
    /** The domain name that you want ACM to use to send you emails so that you can validate domain ownership. */
    DomainValidationOptions?: DomainValidationOption[];
    /** Customer chosen string that can be used to distinguish between calls to RequestCertificate. Idempotency tokens time out after one hour. Therefore, if you call RequestCertificate multiple times with th */
    IdempotencyToken?: string;
    /** Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data. RSA is the default key algorithm for ACM certificates. Elliptic Curve Digital Signature Algorithm */
    KeyAlgorithm?: 'RSA_1024' | 'RSA_2048' | 'RSA_3072' | 'RSA_4096' | 'EC_prime256v1' | 'EC_secp384r1' | 'EC_secp521r1';
    /** Identifies the Amazon Web Services service that manages the certificate issued by ACM. */
    ManagedBy?: 'CLOUDFRONT';
    /** You can use this parameter to specify whether to add the certificate to a certificate transparency log and export your certificate. Certificate transparency makes it possible to detect SSL/TLS certifi */
    Options?: CertificateOptions;
    /** Additional FQDNs to be included in the Subject Alternative Name extension of the ACM certificate. For example, add the name www.example.net to a certificate for which the DomainName field is www.examp */
    SubjectAlternativeNames?: string[];
    /** One or more resource tags to associate with the certificate. */
    Tags?: Tag[];
    /** The method you want to use if you are requesting a public certificate to validate that you own or control domain. You can validate with DNS or validate with email. We recommend that you use DNS valida */
    ValidationMethod?: 'EMAIL' | 'DNS' | 'HTTP';
}
export interface ResendValidationEmailInput {
    /** String that contains the ARN of the requested certificate. The certificate ARN is generated and returned by the RequestCertificate action as soon as the request is made. By default, using this paramet */
    CertificateArn: string;
    /** The fully qualified domain name (FQDN) of the certificate that needs to be validated. */
    Domain: string;
    /** The base validation domain that will act as the suffix of the email addresses that are used to send the emails. This must be the same as the Domain value or a superdomain of the Domain value. For exam */
    ValidationDomain: string;
}
export interface RevokeCertificateInput {
    /** The Amazon Resource Name (ARN) of the public or private certificate that will be revoked. The ARN must have the following form: arn:aws:acm:region:account:certificate/12345678-1234-1234-1234-123456789 */
    CertificateArn: string;
    /** Specifies why you revoked the certificate. */
    RevocationReason: 'UNSPECIFIED' | 'KEY_COMPROMISE' | 'CA_COMPROMISE' | 'AFFILIATION_CHANGED' | 'SUPERCEDED' | 'SUPERSEDED' | 'CESSATION_OF_OPERATION' | 'CERTIFICATE_HOLD' | 'REMOVE_FROM_CRL' | 'PRIVILEGE_WITHDRAWN' | 'A_A_COMPROMISE';
}
export interface UpdateCertificateOptionsInput {
    /** ARN of the requested certificate to update. This must be of the form: arn:aws:acm:us-east-1:account:certificate/12345678-1234-1234-1234-123456789012 */
    CertificateArn: string;
    /** Use to update the options for your certificate. Currently, you can specify whether to add your certificate to a transparency log or export your certificate. Certificate transparency makes it possible  */
    Options: CertificateOptions;
}
/** ACM service binding for Step Functions SDK integrations. */
export declare class ACM {
    constructor();
    addTagsToCertificate<T>(params: AddTagsToCertificateInput): Promise<T>;
    deleteCertificate<T>(params: DeleteCertificateInput): Promise<T>;
    describeCertificate<T>(params: DescribeCertificateInput): Promise<T>;
    exportCertificate<T>(params: ExportCertificateInput): Promise<T>;
    getAccountConfiguration<T>(): Promise<T>;
    getCertificate<T>(params: GetCertificateInput): Promise<T>;
    importCertificate<T>(params: ImportCertificateInput): Promise<T>;
    listCertificates<T>(params: ListCertificatesInput): Promise<T>;
    listTagsForCertificate<T>(params: ListTagsForCertificateInput): Promise<T>;
    putAccountConfiguration<T>(params: PutAccountConfigurationInput): Promise<T>;
    removeTagsFromCertificate<T>(params: RemoveTagsFromCertificateInput): Promise<T>;
    renewCertificate<T>(params: RenewCertificateInput): Promise<T>;
    requestCertificate<T>(params: RequestCertificateInput): Promise<T>;
    resendValidationEmail<T>(params: ResendValidationEmailInput): Promise<T>;
    revokeCertificate<T>(params: RevokeCertificateInput): Promise<T>;
    updateCertificateOptions<T>(params: UpdateCertificateOptionsInput): Promise<T>;
}
//# sourceMappingURL=ACM.d.ts.map