export interface Tag {
    /** The key of the tag. */
    Key: string;
    /** The value of the tag. */
    Value: string;
}
export interface AddTagsToResourceInput {
    /** The Amazon Resource Name (ARN) of the AWS CloudHSM resource to tag. */
    ResourceArn: string;
    /** One or more tags. */
    TagList: Tag[];
}
/** Contains the inputs for the CreateHapgRequest action. */
export interface CreateHapgInput {
    /** The label of the new high-availability partition group. */
    Label: string;
}
/** Contains the inputs for the CreateHsm operation. */
export interface CreateHsmInput {
    /** The ARN of an IAM role to enable the AWS CloudHSM service to allocate an ENI on your behalf. */
    IamRoleArn: string;
    /** The SSH public key to install on the HSM. */
    SshKey: string;
    /** The identifier of the subnet in your VPC in which to place the HSM. */
    SubnetId: string;
    SubscriptionType: 'PRODUCTION';
    /** A user-defined token to ensure idempotence. Subsequent calls to this operation with the same token will be ignored. */
    ClientToken?: string;
    /** The IP address to assign to the HSM's ENI. If an IP address is not specified, an IP address will be randomly chosen from the CIDR range of the subnet. */
    EniIp?: string;
    /** The external ID from IamRoleArn, if present. */
    ExternalId?: string;
    /** The IP address for the syslog monitoring server. The AWS CloudHSM service only supports one syslog monitoring server. */
    SyslogIp?: string;
}
/** Contains the inputs for the CreateLunaClient action. */
export interface CreateLunaClientInput {
    /** The contents of a Base64-Encoded X.509 v3 certificate to be installed on the HSMs used by this client. */
    Certificate: string;
    /** The label for the client. */
    Label?: string;
}
/** Contains the inputs for the DeleteHapg action. */
export interface DeleteHapgInput {
    /** The ARN of the high-availability partition group to delete. */
    HapgArn: string;
}
/** Contains the inputs for the DeleteHsm operation. */
export interface DeleteHsmInput {
    /** The ARN of the HSM to delete. */
    HsmArn: string;
}
export interface DeleteLunaClientInput {
    /** The ARN of the client to delete. */
    ClientArn: string;
}
/** Contains the inputs for the DescribeHapg action. */
export interface DescribeHapgInput {
    /** The ARN of the high-availability partition group to describe. */
    HapgArn: string;
}
/** Contains the inputs for the DescribeHsm operation. */
export interface DescribeHsmInput {
    /** The ARN of the HSM. Either the HsmArn or the SerialNumber parameter must be specified. */
    HsmArn?: string;
    /** The serial number of the HSM. Either the HsmArn or the HsmSerialNumber parameter must be specified. */
    HsmSerialNumber?: string;
}
export interface DescribeLunaClientInput {
    /** The certificate fingerprint. */
    CertificateFingerprint?: string;
    /** The ARN of the client. */
    ClientArn?: string;
}
export interface GetConfigInput {
    /** The ARN of the client. */
    ClientArn: string;
    /** The client version. */
    ClientVersion: '5.1' | '5.3';
    /** A list of ARNs that identify the high-availability partition groups that are associated with the client. */
    HapgList: string[];
}
export interface ListHapgsInput {
    /** The NextToken value from a previous call to ListHapgs. Pass null if this is the first call. */
    NextToken?: string;
}
export interface ListHsmsInput {
    /** The NextToken value from a previous call to ListHsms. Pass null if this is the first call. */
    NextToken?: string;
}
export interface ListLunaClientsInput {
    /** The NextToken value from a previous call to ListLunaClients. Pass null if this is the first call. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the AWS CloudHSM resource. */
    ResourceArn: string;
}
export interface ModifyHapgInput {
    /** The ARN of the high-availability partition group to modify. */
    HapgArn: string;
    /** The new label for the high-availability partition group. */
    Label?: string;
    /** The list of partition serial numbers to make members of the high-availability partition group. */
    PartitionSerialList?: string[];
}
/** Contains the inputs for the ModifyHsm operation. */
export interface ModifyHsmInput {
    /** The ARN of the HSM to modify. */
    HsmArn: string;
    /** The new IP address for the elastic network interface (ENI) attached to the HSM. If the HSM is moved to a different subnet, and an IP address is not specified, an IP address will be randomly chosen fro */
    EniIp?: string;
    /** The new external ID. */
    ExternalId?: string;
    /** The new IAM role ARN. */
    IamRoleArn?: string;
    /** The new identifier of the subnet that the HSM is in. The new subnet must be in the same Availability Zone as the current subnet. */
    SubnetId?: string;
    /** The new IP address for the syslog monitoring server. The AWS CloudHSM service only supports one syslog monitoring server. */
    SyslogIp?: string;
}
export interface ModifyLunaClientInput {
    /** The new certificate for the client. */
    Certificate: string;
    /** The ARN of the client. */
    ClientArn: string;
}
export interface RemoveTagsFromResourceInput {
    /** The Amazon Resource Name (ARN) of the AWS CloudHSM resource. */
    ResourceArn: string;
    /** The tag key or keys to remove. Specify only the tag key to remove (not the value). To overwrite the value for an existing tag, use AddTagsToResource. */
    TagKeyList: string[];
}
/** CloudHSM service binding for Step Functions SDK integrations. */
export declare class CloudHSM {
    constructor();
    addTagsToResource<T>(params: AddTagsToResourceInput): Promise<T>;
    createHapg<T>(params: CreateHapgInput): Promise<T>;
    createHsm<T>(params: CreateHsmInput): Promise<T>;
    createLunaClient<T>(params: CreateLunaClientInput): Promise<T>;
    deleteHapg<T>(params: DeleteHapgInput): Promise<T>;
    deleteHsm<T>(params: DeleteHsmInput): Promise<T>;
    deleteLunaClient<T>(params: DeleteLunaClientInput): Promise<T>;
    describeHapg<T>(params: DescribeHapgInput): Promise<T>;
    describeHsm<T>(params: DescribeHsmInput): Promise<T>;
    describeLunaClient<T>(params: DescribeLunaClientInput): Promise<T>;
    getConfig<T>(params: GetConfigInput): Promise<T>;
    listAvailableZones<T>(params: Record<string, any>): Promise<T>;
    listHapgs<T>(params: ListHapgsInput): Promise<T>;
    listHsms<T>(params: ListHsmsInput): Promise<T>;
    listLunaClients<T>(params: ListLunaClientsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    modifyHapg<T>(params: ModifyHapgInput): Promise<T>;
    modifyHsm<T>(params: ModifyHsmInput): Promise<T>;
    modifyLunaClient<T>(params: ModifyLunaClientInput): Promise<T>;
    removeTagsFromResource<T>(params: RemoveTagsFromResourceInput): Promise<T>;
}
//# sourceMappingURL=CloudHSM.d.ts.map