export interface Tag {
    /** The tag key. */
    key: string;
    /** The tag value. */
    value: string;
}
export interface Source {
    /** The type of the trust anchor. */
    sourceType?: 'AWS_ACM_PCA' | 'CERTIFICATE_BUNDLE' | 'SELF_SIGNED_REPOSITORY';
    /** The data field of the trust anchor depending on its type. */
    sourceData?: {
        x509CertificateData?: string;
    } | {
        acmPcaArn?: string;
    };
}
export interface NotificationSetting {
    /** Indicates whether the notification setting is enabled. */
    enabled: boolean;
    /** The event to which this notification setting is applied. */
    event: 'CA_CERTIFICATE_EXPIRY' | 'END_ENTITY_CERTIFICATE_EXPIRY';
    /** The number of days before a notification event. This value is required for a notification setting that is enabled. */
    threshold?: number;
    /** The specified channel of notification. IAM Roles Anywhere uses CloudWatch metrics, EventBridge, and Health Dashboard to notify for an event. In the absence of a specific channel, IAM Roles Anywhere ap */
    channel?: 'ALL';
}
export interface MappingRule {
    /** Specifier within a certificate field, such as CN, OU, or UID from the Subject field. */
    specifier: string;
}
export interface NotificationSettingKey {
    /** The notification setting event to reset. */
    event: 'CA_CERTIFICATE_EXPIRY' | 'END_ENTITY_CERTIFICATE_EXPIRY';
    /** The specified channel of notification. */
    channel?: 'ALL';
}
export interface CreateProfileInput {
    /** The name of the profile. */
    name: string;
    /** A list of IAM roles that this profile can assume in a temporary credential request. */
    roleArns: string[];
    /** Used to determine if a custom role session name will be accepted in a temporary credential request. */
    acceptRoleSessionName?: boolean;
    /** Used to determine how long sessions vended using this profile are valid for. See the Expiration section of the CreateSession API documentation page for more details. In requests, if this value is not  */
    durationSeconds?: number;
    /** Specifies whether the profile is enabled. */
    enabled?: boolean;
    /** A list of managed policy ARNs that apply to the vended session credentials. */
    managedPolicyArns?: string[];
    /** Unused, saved for future use. Will likely specify whether instance properties are required in temporary credential requests with this profile. */
    requireInstanceProperties?: boolean;
    /** A session policy that applies to the trust boundary of the vended session credentials. */
    sessionPolicy?: string;
    /** The tags to attach to the profile. */
    tags?: Tag[];
}
export interface CreateTrustAnchorInput {
    /** The name of the trust anchor. */
    name: string;
    /** The trust anchor type and its related certificate data. */
    source: Source;
    /** Specifies whether the trust anchor is enabled. */
    enabled?: boolean;
    /** A list of notification settings to be associated to the trust anchor. */
    notificationSettings?: NotificationSetting[];
    /** The tags to attach to the trust anchor. */
    tags?: Tag[];
}
export interface DeleteAttributeMappingInput {
    /** Fields (x509Subject, x509Issuer and x509SAN) within X.509 certificates. */
    certificateField: 'x509Subject' | 'x509Issuer' | 'x509SAN';
    /** The unique identifier of the profile. */
    profileId: string;
    /** A list of specifiers of a certificate field; for example, CN, OU, UID from a Subject. */
    specifiers?: string[];
}
export interface DeleteCrlInput {
    /** The unique identifier of the certificate revocation list (CRL). */
    crlId: string;
}
export interface DeleteProfileInput {
    /** The unique identifier of the profile. */
    profileId: string;
}
export interface DeleteTrustAnchorInput {
    /** The unique identifier of the trust anchor. */
    trustAnchorId: string;
}
export interface DisableCrlInput {
    /** The unique identifier of the certificate revocation list (CRL). */
    crlId: string;
}
export interface DisableProfileInput {
    /** The unique identifier of the profile. */
    profileId: string;
}
export interface DisableTrustAnchorInput {
    /** The unique identifier of the trust anchor. */
    trustAnchorId: string;
}
export interface EnableCrlInput {
    /** The unique identifier of the certificate revocation list (CRL). */
    crlId: string;
}
export interface EnableProfileInput {
    /** The unique identifier of the profile. */
    profileId: string;
}
export interface EnableTrustAnchorInput {
    /** The unique identifier of the trust anchor. */
    trustAnchorId: string;
}
export interface GetCrlInput {
    /** The unique identifier of the certificate revocation list (CRL). */
    crlId: string;
}
export interface GetProfileInput {
    /** The unique identifier of the profile. */
    profileId: string;
}
export interface GetSubjectInput {
    /** The unique identifier of the subject. */
    subjectId: string;
}
export interface GetTrustAnchorInput {
    /** The unique identifier of the trust anchor. */
    trustAnchorId: string;
}
export interface ImportCrlInput {
    /** The x509 v3 specified certificate revocation list (CRL). */
    crlData: string;
    /** The name of the certificate revocation list (CRL). */
    name: string;
    /** The ARN of the TrustAnchor the certificate revocation list (CRL) will provide revocation for. */
    trustAnchorArn: string;
    /** Specifies whether the certificate revocation list (CRL) is enabled. */
    enabled?: boolean;
    /** A list of tags to attach to the certificate revocation list (CRL). */
    tags?: Tag[];
}
export interface ListCrlsInput {
    /** A token that indicates where the output should continue from, if a previous request did not show all results. To get the next results, make the request again with this value. */
    nextToken?: string;
    /** The number of resources in the paginated list. */
    pageSize?: number;
}
export interface ListProfilesInput {
    /** A token that indicates where the output should continue from, if a previous request did not show all results. To get the next results, make the request again with this value. */
    nextToken?: string;
    /** The number of resources in the paginated list. */
    pageSize?: number;
}
export interface ListSubjectsInput {
    /** A token that indicates where the output should continue from, if a previous request did not show all results. To get the next results, make the request again with this value. */
    nextToken?: string;
    /** The number of resources in the paginated list. */
    pageSize?: number;
}
export interface ListTagsForResourceInput {
    /** The ARN of the resource. */
    resourceArn: string;
}
export interface ListTrustAnchorsInput {
    /** A token that indicates where the output should continue from, if a previous request did not show all results. To get the next results, make the request again with this value. */
    nextToken?: string;
    /** The number of resources in the paginated list. */
    pageSize?: number;
}
export interface PutAttributeMappingInput {
    /** Fields (x509Subject, x509Issuer and x509SAN) within X.509 certificates. */
    certificateField: 'x509Subject' | 'x509Issuer' | 'x509SAN';
    /** A list of mapping entries for every supported specifier or sub-field. */
    mappingRules: MappingRule[];
    /** The unique identifier of the profile. */
    profileId: string;
}
export interface PutNotificationSettingsInput {
    /** A list of notification settings to be associated to the trust anchor. */
    notificationSettings: NotificationSetting[];
    /** The unique identifier of the trust anchor. */
    trustAnchorId: string;
}
export interface ResetNotificationSettingsInput {
    /** A list of notification setting keys to reset. A notification setting key includes the event and the channel. */
    notificationSettingKeys: NotificationSettingKey[];
    /** The unique identifier of the trust anchor. */
    trustAnchorId: string;
}
export interface TagResourceInput {
    /** The ARN of the resource. */
    resourceArn: string;
    /** The tags to attach to the resource. */
    tags: Tag[];
}
export interface UntagResourceInput {
    /** The ARN of the resource. */
    resourceArn: string;
    /** A list of keys. Tag keys are the unique identifiers of tags. */
    tagKeys: string[];
}
export interface UpdateCrlInput {
    /** The unique identifier of the certificate revocation list (CRL). */
    crlId: string;
    /** The x509 v3 specified certificate revocation list (CRL). */
    crlData?: string;
    /** The name of the Crl. */
    name?: string;
}
export interface UpdateProfileInput {
    /** The unique identifier of the profile. */
    profileId: string;
    /** Used to determine if a custom role session name will be accepted in a temporary credential request. */
    acceptRoleSessionName?: boolean;
    /** Used to determine how long sessions vended using this profile are valid for. See the Expiration section of the CreateSession API documentation page for more details. In requests, if this value is not  */
    durationSeconds?: number;
    /** A list of managed policy ARNs that apply to the vended session credentials. */
    managedPolicyArns?: string[];
    /** The name of the profile. */
    name?: string;
    /** A list of IAM roles that this profile can assume in a temporary credential request. */
    roleArns?: string[];
    /** A session policy that applies to the trust boundary of the vended session credentials. */
    sessionPolicy?: string;
}
export interface UpdateTrustAnchorInput {
    /** The unique identifier of the trust anchor. */
    trustAnchorId: string;
    /** The name of the trust anchor. */
    name?: string;
    /** The trust anchor type and its related certificate data. */
    source?: Source;
}
/** RolesAnywhere service binding for Step Functions SDK integrations. */
export declare class RolesAnywhere {
    constructor();
    createProfile<T>(params: CreateProfileInput): Promise<T>;
    createTrustAnchor<T>(params: CreateTrustAnchorInput): Promise<T>;
    deleteAttributeMapping<T>(params: DeleteAttributeMappingInput): Promise<T>;
    deleteCrl<T>(params: DeleteCrlInput): Promise<T>;
    deleteProfile<T>(params: DeleteProfileInput): Promise<T>;
    deleteTrustAnchor<T>(params: DeleteTrustAnchorInput): Promise<T>;
    disableCrl<T>(params: DisableCrlInput): Promise<T>;
    disableProfile<T>(params: DisableProfileInput): Promise<T>;
    disableTrustAnchor<T>(params: DisableTrustAnchorInput): Promise<T>;
    enableCrl<T>(params: EnableCrlInput): Promise<T>;
    enableProfile<T>(params: EnableProfileInput): Promise<T>;
    enableTrustAnchor<T>(params: EnableTrustAnchorInput): Promise<T>;
    getCrl<T>(params: GetCrlInput): Promise<T>;
    getProfile<T>(params: GetProfileInput): Promise<T>;
    getSubject<T>(params: GetSubjectInput): Promise<T>;
    getTrustAnchor<T>(params: GetTrustAnchorInput): Promise<T>;
    importCrl<T>(params: ImportCrlInput): Promise<T>;
    listCrls<T>(params: ListCrlsInput): Promise<T>;
    listProfiles<T>(params: ListProfilesInput): Promise<T>;
    listSubjects<T>(params: ListSubjectsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listTrustAnchors<T>(params: ListTrustAnchorsInput): Promise<T>;
    putAttributeMapping<T>(params: PutAttributeMappingInput): Promise<T>;
    putNotificationSettings<T>(params: PutNotificationSettingsInput): Promise<T>;
    resetNotificationSettings<T>(params: ResetNotificationSettingsInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateCrl<T>(params: UpdateCrlInput): Promise<T>;
    updateProfile<T>(params: UpdateProfileInput): Promise<T>;
    updateTrustAnchor<T>(params: UpdateTrustAnchorInput): Promise<T>;
}
//# sourceMappingURL=RolesAnywhere.d.ts.map