export interface Watcher {
    email: string;
    name?: string;
    jobTitle?: string;
}
export interface ThreatActorIp {
    ipAddress: string;
    userAgent?: string;
}
export interface ImpactedAwsRegion {
    region: 'af-south-1' | 'ap-east-1' | 'ap-east-2' | 'ap-northeast-1' | 'ap-northeast-2' | 'ap-northeast-3' | 'ap-south-1' | 'ap-south-2' | 'ap-southeast-1' | 'ap-southeast-2' | 'ap-southeast-3' | 'ap-southeast-4' | 'ap-southeast-5' | 'ap-southeast-6' | 'ap-southeast-7' | 'ca-central-1' | 'ca-west-1' | 'cn-north-1' | 'cn-northwest-1' | 'eu-central-1' | 'eu-central-2' | 'eu-north-1' | 'eu-south-1' | 'eu-south-2' | 'eu-west-1' | 'eu-west-2' | 'eu-west-3' | 'il-central-1' | 'me-central-1' | 'me-south-1' | 'mx-central-1' | 'sa-east-1' | 'us-east-1' | 'us-east-2' | 'us-west-1' | 'us-west-2';
}
export interface IncidentResponder {
    name: string;
    jobTitle: string;
    email: string;
    communicationPreferences?: any[];
}
export interface OptInFeature {
    featureName: 'Triage';
    isEnabled: boolean;
}
export interface CaseMetadataEntry {
    /** The identifier for the metadata field. This key uniquely identifies the type of metadata being stored, such as "severity", "category", or "assignee". */
    key: string;
    /** The value associated with the metadata key. This contains the actual data for the metadata field identified by the key. */
    value: string;
}
export interface MembershipAccountsConfigurationsUpdate {
    /** The coverEntireOrganization field is a boolean value that determines whether the membership configuration should be applied across the entire Amazon Web Services Organization. When set to true, the co */
    coverEntireOrganization?: boolean;
    /** A list of organizational unit IDs to add to the membership configuration. Each organizational unit ID must match the pattern ou-[0-9a-z]{4,32}-[a-z0-9]{8,32}. The list must contain between 1 and 5 org */
    organizationalUnitsToAdd?: string[];
    /** A list of organizational unit IDs to remove from the membership configuration. Each organizational unit ID must match the pattern ou-[0-9a-z]{4,32}-[a-z0-9]{8,32}. The list must contain between 1 and  */
    organizationalUnitsToRemove?: string[];
}
export interface BatchGetMemberAccountDetailsInput {
    /** Optional element to query the membership relationship status to a provided list of account IDs. AWS account ID's may appear less than 12 characters and need to be zero-prepended. An example would be 1 */
    accountIds: string[];
    /** Required element used in combination with BatchGetMemberAccountDetails to identify the membership ID to query. */
    membershipId: string;
}
export interface CancelMembershipInput {
    /** Required element used in combination with CancelMembershipRequest to identify the membership ID to cancel. */
    membershipId: string;
}
export interface CloseCaseInput {
    /** Required element used in combination with CloseCase to identify the case ID to close. */
    caseId: string;
}
export interface CreateCaseInput {
    /** Required element used in combination with CreateCase to provide a description for the new case. */
    description: string;
    /** Required element used in combination with CreateCase to provide an engagement type for the new cases. Available engagement types include Security Incident | Investigation */
    engagementType: 'Security Incident' | 'Investigation';
    /** Required element used in combination with CreateCase to provide a list of impacted accounts. AWS account ID's may appear less than 12 characters and need to be zero-prepended. An example would be 1231 */
    impactedAccounts: string[];
    /** Required element used in combination with CreateCase to provide an initial start date for the unauthorized activity. */
    reportedIncidentStartDate: string;
    /** Required element used in combination with CreateCase to identify the resolver type. */
    resolverType: 'AWS' | 'Self';
    /** Required element used in combination with CreateCase to provide a title for the new case. */
    title: string;
    /** Required element used in combination with CreateCase to provide a list of entities to receive notifications for case updates. */
    watchers: Watcher[];
    /** The clientToken field is an idempotency key used to ensure that repeated attempts for a single action will be ignored by the server during retries. A caller supplied unique ID (typically a UUID) shoul */
    clientToken?: string;
    /** An optional element used in combination with CreateCase to provide a list of impacted regions. */
    impactedAwsRegions?: ImpactedAwsRegion[];
    /** An optional element used in combination with CreateCase to provide a list of services impacted. */
    impactedServices?: string[];
    /** An optional element used in combination with CreateCase to add customer specified tags to a case. */
    tags?: Record<string, string>;
    /** An optional element used in combination with CreateCase to provide a list of suspicious internet protocol addresses associated with unauthorized activity. */
    threatActorIpAddresses?: ThreatActorIp[];
}
export interface CreateCaseCommentInput {
    /** Required element used in combination with CreateCaseComment to add content for the new comment. */
    body: string;
    /** Required element used in combination with CreateCaseComment to specify a case ID. */
    caseId: string;
    /** The clientToken field is an idempotency key used to ensure that repeated attempts for a single action will be ignored by the server during retries. A caller supplied unique ID (typically a UUID) shoul */
    clientToken?: string;
}
export interface CreateMembershipInput {
    /** Required element used in combination with CreateMembership to add customer incident response team members and trusted partners to the membership. */
    incidentResponseTeam: IncidentResponder[];
    /** Required element used in combination with CreateMembership to create a name for the membership. */
    membershipName: string;
    /** The clientToken field is an idempotency key used to ensure that repeated attempts for a single action will be ignored by the server during retries. A caller supplied unique ID (typically a UUID) shoul */
    clientToken?: string;
    /** The coverEntireOrganization parameter is a boolean flag that determines whether the membership should be applied to the entire Amazon Web Services Organization. When set to true, the membership will b */
    coverEntireOrganization?: boolean;
    /** Optional element to enable the monitoring and investigation opt-in features for the service. */
    optInFeatures?: OptInFeature[];
    /** Optional element for customer configured tags. */
    tags?: Record<string, string>;
}
export interface GetCaseInput {
    /** Required element for GetCase to identify the requested case ID. */
    caseId: string;
}
export interface GetCaseAttachmentDownloadUrlInput {
    /** Required element for GetCaseAttachmentDownloadUrl to identify the attachment ID for downloading an attachment. */
    attachmentId: string;
    /** Required element for GetCaseAttachmentDownloadUrl to identify the case ID for downloading an attachment from. */
    caseId: string;
}
export interface GetCaseAttachmentUploadUrlInput {
    /** Required element for GetCaseAttachmentUploadUrl to identify the case ID for uploading an attachment. */
    caseId: string;
    /** Required element for GetCaseAttachmentUploadUrl to identify the size of the file attachment. */
    contentLength: number;
    /** Required element for GetCaseAttachmentUploadUrl to identify the file name of the attachment to upload. */
    fileName: string;
    /** The clientToken field is an idempotency key used to ensure that repeated attempts for a single action will be ignored by the server during retries. A caller supplied unique ID (typically a UUID) shoul */
    clientToken?: string;
}
export interface GetMembershipInput {
    /** Required element for GetMembership to identify the membership ID to query. */
    membershipId: string;
}
export interface ListCaseEditsInput {
    /** Required element used with ListCaseEdits to identify the case to query. */
    caseId: string;
    /** Optional element to identify how many results to obtain. There is a maximum value of 25. */
    maxResults?: number;
    /** An optional string that, if supplied, must be copied from the output of a previous call to ListCaseEdits. When provided in this manner, the API fetches the next page of results. */
    nextToken?: string;
}
export interface ListCasesInput {
    /** Optional element for ListCases to limit the number of responses. */
    maxResults?: number;
    /** An optional string that, if supplied, must be copied from the output of a previous call to ListCases. When provided in this manner, the API fetches the next page of results. */
    nextToken?: string;
}
export interface ListCommentsInput {
    /** Required element for ListComments to designate the case to query. */
    caseId: string;
    /** Optional element for ListComments to limit the number of responses. */
    maxResults?: number;
    /** An optional string that, if supplied, must be copied from the output of a previous call to ListComments. When provided in this manner, the API fetches the next page of results. */
    nextToken?: string;
}
export interface ListInvestigationsInput {
    /** Investigation performed by an agent for a security incident per caseID */
    caseId: string;
    /** Investigation performed by an agent for a security incident request, returning max results */
    maxResults?: number;
    /** Investigation performed by an agent for a security incident request */
    nextToken?: string;
}
export interface ListMembershipsInput {
    /** Request element for ListMemberships to limit the number of responses. */
    maxResults?: number;
    /** An optional string that, if supplied, must be copied from the output of a previous call to ListMemberships. When provided in this manner, the API fetches the next page of results. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** Required element for ListTagsForResource to provide the ARN to identify a specific resource. */
    resourceArn: string;
}
export interface SendFeedbackInput {
    /** Send feedback based on request caseID */
    caseId: string;
    /** Send feedback based on request result ID */
    resultId: string;
    /** Required enum value indicating user assessment of result q..... */
    usefulness: 'USEFUL' | 'NOT_USEFUL';
    /** Send feedback based on request comments */
    comment?: string;
}
export interface TagResourceInput {
    /** Required element for TagResource to identify the ARN for the resource to add a tag to. */
    resourceArn: string;
    /** Required element for ListTagsForResource to provide the content for a tag. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** Required element for UnTagResource to identify the ARN for the resource to remove a tag from. */
    resourceArn: string;
    /** Required element for UnTagResource to identify tag to remove. */
    tagKeys: string[];
}
export interface UpdateCaseInput {
    /** Required element for UpdateCase to identify the case ID for updates. */
    caseId: string;
    /** Optional element for UpdateCase to provide content for the incident start date field. */
    actualIncidentStartDate?: string;
    /** Update the case request with case metadata */
    caseMetadata?: CaseMetadataEntry[];
    /** Optional element for UpdateCase to provide content for the description field. */
    description?: string;
    /** Optional element for UpdateCase to provide content for the engagement type field. Available engagement types include Security Incident | Investigation. */
    engagementType?: 'Security Incident' | 'Investigation';
    /** Optional element for UpdateCase to provide content to add accounts impacted. AWS account ID's may appear less than 12 characters and need to be zero-prepended. An example would be 123123123 which is n */
    impactedAccountsToAdd?: string[];
    /** Optional element for UpdateCase to provide content to add accounts impacted. AWS account ID's may appear less than 12 characters and need to be zero-prepended. An example would be 123123123 which is n */
    impactedAccountsToDelete?: string[];
    /** Optional element for UpdateCase to provide content to add regions impacted. */
    impactedAwsRegionsToAdd?: ImpactedAwsRegion[];
    /** Optional element for UpdateCase to provide content to remove regions impacted. */
    impactedAwsRegionsToDelete?: ImpactedAwsRegion[];
    /** Optional element for UpdateCase to provide content to add services impacted. */
    impactedServicesToAdd?: string[];
    /** Optional element for UpdateCase to provide content to remove services impacted. */
    impactedServicesToDelete?: string[];
    /** Optional element for UpdateCase to provide content for the customer reported incident start date field. */
    reportedIncidentStartDate?: string;
    /** Optional element for UpdateCase to provide content to add additional suspicious IP addresses related to a case. */
    threatActorIpAddressesToAdd?: ThreatActorIp[];
    /** Optional element for UpdateCase to provide content to remove suspicious IP addresses from a case. */
    threatActorIpAddressesToDelete?: ThreatActorIp[];
    /** Optional element for UpdateCase to provide content for the title field. */
    title?: string;
    /** Optional element for UpdateCase to provide content to add additional watchers to a case. */
    watchersToAdd?: Watcher[];
    /** Optional element for UpdateCase to provide content to remove existing watchers from a case. */
    watchersToDelete?: Watcher[];
}
export interface UpdateCaseCommentInput {
    /** Required element for UpdateCaseComment to identify the content for the comment to be updated. */
    body: string;
    /** Required element for UpdateCaseComment to identify the case ID containing the comment to be updated. */
    caseId: string;
    /** Required element for UpdateCaseComment to identify the case ID to be updated. */
    commentId: string;
}
export interface UpdateCaseStatusInput {
    /** Required element for UpdateCaseStatus to identify the case to update. */
    caseId: string;
    /** Required element for UpdateCaseStatus to identify the status for a case. Options include Submitted | Detection and Analysis | Containment, Eradication and Recovery | Post-incident Activities. */
    caseStatus: 'Submitted' | 'Detection and Analysis' | 'Containment, Eradication and Recovery' | 'Post-incident Activities';
}
export interface UpdateMembershipInput {
    /** Required element for UpdateMembership to identify the membership to update. */
    membershipId: string;
    /** Optional element for UpdateMembership to update the membership name. */
    incidentResponseTeam?: IncidentResponder[];
    /** The membershipAccountsConfigurationsUpdate field in the UpdateMembershipRequest structure allows you to update the configuration settings for accounts within a membership. This field is optional and c */
    membershipAccountsConfigurationsUpdate?: MembershipAccountsConfigurationsUpdate;
    /** Optional element for UpdateMembership to update the membership name. */
    membershipName?: string;
    /** Optional element for UpdateMembership to enable or disable opt-in features for the service. */
    optInFeatures?: OptInFeature[];
    /** The undoMembershipCancellation parameter is a boolean flag that indicates whether to reverse a previously requested membership cancellation. When set to true, this will revoke the cancellation request */
    undoMembershipCancellation?: boolean;
}
export interface UpdateResolverTypeInput {
    /** Required element for UpdateResolverType to identify the case to update. */
    caseId: string;
    /** Required element for UpdateResolverType to identify the new resolver. */
    resolverType: 'AWS' | 'Self';
}
/** Security IR service binding for Step Functions SDK integrations. */
export declare class SecurityIR {
    constructor();
    batchGetMemberAccountDetails<T>(params: BatchGetMemberAccountDetailsInput): Promise<T>;
    cancelMembership<T>(params: CancelMembershipInput): Promise<T>;
    closeCase<T>(params: CloseCaseInput): Promise<T>;
    createCase<T>(params: CreateCaseInput): Promise<T>;
    createCaseComment<T>(params: CreateCaseCommentInput): Promise<T>;
    createMembership<T>(params: CreateMembershipInput): Promise<T>;
    getCase<T>(params: GetCaseInput): Promise<T>;
    getCaseAttachmentDownloadUrl<T>(params: GetCaseAttachmentDownloadUrlInput): Promise<T>;
    getCaseAttachmentUploadUrl<T>(params: GetCaseAttachmentUploadUrlInput): Promise<T>;
    getMembership<T>(params: GetMembershipInput): Promise<T>;
    listCaseEdits<T>(params: ListCaseEditsInput): Promise<T>;
    listCases<T>(params: ListCasesInput): Promise<T>;
    listComments<T>(params: ListCommentsInput): Promise<T>;
    listInvestigations<T>(params: ListInvestigationsInput): Promise<T>;
    listMemberships<T>(params: ListMembershipsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    sendFeedback<T>(params: SendFeedbackInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateCase<T>(params: UpdateCaseInput): Promise<T>;
    updateCaseComment<T>(params: UpdateCaseCommentInput): Promise<T>;
    updateCaseStatus<T>(params: UpdateCaseStatusInput): Promise<T>;
    updateMembership<T>(params: UpdateMembershipInput): Promise<T>;
    updateResolverType<T>(params: UpdateResolverTypeInput): Promise<T>;
}
//# sourceMappingURL=SecurityIR.d.ts.map