export interface Name {
    /** A string containing a formatted version of the name for display. */
    Formatted?: string;
    /** The family name of the user. */
    FamilyName?: string;
    /** The given name of the user. */
    GivenName?: string;
    /** The middle name of the user. */
    MiddleName?: string;
    /** The honorific prefix of the user. For example, "Dr." */
    HonorificPrefix?: string;
    /** The honorific suffix of the user. For example, "M.D." */
    HonorificSuffix?: string;
}
export interface Email {
    /** A string containing an email address. For example, "johndoe@amazon.com." */
    Value?: string;
    /** A string representing the type of address. For example, "Work." */
    Type?: string;
    /** A Boolean value representing whether this is the primary email address for the associated resource. */
    Primary?: boolean;
}
export interface Address {
    /** The street of the address. */
    StreetAddress?: string;
    /** A string of the address locality. */
    Locality?: string;
    /** The region of the address. */
    Region?: string;
    /** The postal code of the address. */
    PostalCode?: string;
    /** The country of the address. */
    Country?: string;
    /** A string containing a formatted version of the address for display. */
    Formatted?: string;
    /** A string representing the type of address. For example, "Home." */
    Type?: string;
    /** A Boolean value representing whether this is the primary address for the associated resource. */
    Primary?: boolean;
}
export interface PhoneNumber {
    /** A string containing a phone number. For example, "8675309" or "+1 (800) 123-4567". */
    Value?: string;
    /** A string representing the type of a phone number. For example, "Mobile." */
    Type?: string;
    /** A Boolean value representing whether this is the primary phone number for the associated resource. */
    Primary?: boolean;
}
export interface Photo {
    /** The photo data or URL. Supported formats include jpg, jpeg, png, and gif. This field is required for all photo entries. */
    Value: string;
    /** The type of photo. This field is optional and can be used to categorize different types of photos. */
    Type?: string;
    /** A human-readable description of the photo for display purposes. This optional field provides context about the photo. */
    Display?: string;
    /** Specifies whether this is the user's primary photo. Default value is false. Only one photo can be designated as primary per user. */
    Primary?: boolean;
}
export interface Role {
    /** A string containing a role name. For example, "Researcher." */
    Value?: string;
    /** A string representing the type of role. For example, "Work." */
    Type?: string;
    /** A Boolean value representing whether this is the primary role for the associated resource. */
    Primary?: boolean;
}
export interface ExternalId {
    /** The issuer for an external identifier. */
    Issuer: string;
    /** The identifier issued to this resource by an external identity provider. */
    Id: string;
}
export interface UniqueAttribute {
    /** A string representation of the path to a given attribute or sub-attribute. Supports JMESPath. */
    AttributePath: string;
    /** The value of the attribute. This is a Document type. This type is not supported by Java V1, Go V1, and older versions of the CLI. */
    AttributeValue: any;
}
export interface Filter {
    /** The attribute path that is used to specify which attribute name to search. Length limit is 255 characters. For example, UserName is a valid attribute path for the ListUsers API, and DisplayName is a v */
    AttributePath: string;
    /** Represents the data for an attribute. Each attribute value is described as a name-value pair. */
    AttributeValue: string;
}
export interface AttributeOperation {
    /** A string representation of the path to a given attribute or sub-attribute. Supports JMESPath. */
    AttributePath: string;
    /** The value of the attribute. This is a Document type. This type is not supported by Java V1, Go V1, and older versions of the CLI. */
    AttributeValue?: any;
}
export interface CreateGroupInput {
    /** The globally unique identifier for the identity store. */
    IdentityStoreId: string;
    /** A string containing the description of the group. */
    Description?: string;
    /** A string containing the name of the group. This value is commonly displayed when the group is referenced. Administrator and AWSAdministrators are reserved names and can't be used for users or groups. */
    DisplayName?: string;
}
export interface CreateGroupMembershipInput {
    /** The identifier for a group in the identity store. */
    GroupId: string;
    /** The globally unique identifier for the identity store. */
    IdentityStoreId: string;
    /** An object that contains the identifier of a group member. Setting the UserID field to the specific identifier for a user indicates that the user is a member of the group. */
    MemberId: {
        UserId?: string;
    };
}
export interface CreateUserInput {
    /** The globally unique identifier for the identity store. */
    IdentityStoreId: string;
    /** A list of Address objects containing addresses associated with the user. */
    Addresses?: Address[];
    /** The user's birthdate in YYYY-MM-DD format. This field supports standard date format for storing personal information. */
    Birthdate?: string;
    /** A string containing the name of the user. This value is typically formatted for display when the user is referenced. For example, "John Doe." When used in IAM Identity Center, this parameter is requir */
    DisplayName?: string;
    /** A list of Email objects containing email addresses associated with the user. */
    Emails?: Email[];
    /** A map with additional attribute extensions for the user. Each map key corresponds to an extension name, while map values represent extension data in Document type (not supported by Java V1, Go V1 and  */
    Extensions?: Record<string, any>;
    /** A string containing the geographical region or location of the user. */
    Locale?: string;
    /** An object containing the name of the user. When used in IAM Identity Center, this parameter is required. */
    Name?: Name;
    /** A string containing an alternate name for the user. */
    NickName?: string;
    /** A list of PhoneNumber objects containing phone numbers associated with the user. */
    PhoneNumbers?: PhoneNumber[];
    /** A list of photos associated with the user. You can add up to 3 photos per user. Each photo can include a value, type, display name, and primary designation. */
    Photos?: Photo[];
    /** A string containing the preferred language of the user. For example, "American English" or "en-us." */
    PreferredLanguage?: string;
    /** A string containing a URL that might be associated with the user. */
    ProfileUrl?: string;
    /** A list of Role objects containing roles associated with the user. */
    Roles?: Role[];
    /** A string containing the time zone of the user. */
    Timezone?: string;
    /** A string containing the title of the user. Possible values are left unspecified. The value can vary based on your specific use case. */
    Title?: string;
    /** A unique string used to identify the user. The length limit is 128 characters. This value can consist of letters, accented characters, symbols, numbers, and punctuation. This value is specified at the */
    UserName?: string;
    /** A string indicating the type of user. Possible values are left unspecified. The value can vary based on your specific use case. */
    UserType?: string;
    /** The user's personal website or blog URL. This field allows users to provide a link to their personal or professional website. */
    Website?: string;
}
export interface DeleteGroupInput {
    /** The identifier for a group in the identity store. */
    GroupId: string;
    /** The globally unique identifier for the identity store. */
    IdentityStoreId: string;
}
export interface DeleteGroupMembershipInput {
    /** The globally unique identifier for the identity store. */
    IdentityStoreId: string;
    /** The identifier for a GroupMembership in an identity store. */
    MembershipId: string;
}
export interface DeleteUserInput {
    /** The globally unique identifier for the identity store. */
    IdentityStoreId: string;
    /** The identifier for a user in the identity store. */
    UserId: string;
}
export interface DescribeGroupInput {
    /** The identifier for a group in the identity store. */
    GroupId: string;
    /** The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string that contains numbers and lower case l */
    IdentityStoreId: string;
}
export interface DescribeGroupMembershipInput {
    /** The globally unique identifier for the identity store. */
    IdentityStoreId: string;
    /** The identifier for a GroupMembership in an identity store. */
    MembershipId: string;
}
export interface DescribeUserInput {
    /** The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string that contains numbers and lower case l */
    IdentityStoreId: string;
    /** The identifier for a user in the identity store. */
    UserId: string;
    /** A collection of extension names indicating what extensions the service should retrieve alongside other user attributes. aws:identitystore:enterprise is the only supported extension name. */
    Extensions?: string[];
}
export interface GetGroupIdInput {
    /** A unique identifier for a user or group that is not the primary identifier. This value can be an identifier from an external identity provider (IdP) that is associated with the user, the group, or a u */
    AlternateIdentifier: {
        ExternalId?: ExternalId;
    } | {
        UniqueAttribute?: UniqueAttribute;
    };
    /** The globally unique identifier for the identity store. */
    IdentityStoreId: string;
}
export interface GetGroupMembershipIdInput {
    /** The identifier for a group in the identity store. */
    GroupId: string;
    /** The globally unique identifier for the identity store. */
    IdentityStoreId: string;
    /** An object that contains the identifier of a group member. Setting the UserID field to the specific identifier for a user indicates that the user is a member of the group. */
    MemberId: {
        UserId?: string;
    };
}
export interface GetUserIdInput {
    /** A unique identifier for a user or group that is not the primary identifier. This value can be an identifier from an external identity provider (IdP) that is associated with the user, the group, or a u */
    AlternateIdentifier: {
        ExternalId?: ExternalId;
    } | {
        UniqueAttribute?: UniqueAttribute;
    };
    /** The globally unique identifier for the identity store. */
    IdentityStoreId: string;
}
export interface IsMemberInGroupsInput {
    /** A list of identifiers for groups in the identity store. */
    GroupIds: string[];
    /** The globally unique identifier for the identity store. */
    IdentityStoreId: string;
    /** An object containing the identifier of a group member. */
    MemberId: {
        UserId?: string;
    };
}
export interface ListGroupMembershipsInput {
    /** The identifier for a group in the identity store. */
    GroupId: string;
    /** The globally unique identifier for the identity store. */
    IdentityStoreId: string;
    /** The maximum number of results to be returned per request. This parameter is used in all List requests to specify how many results to return in one page. */
    MaxResults?: number;
    /** The pagination token used for the ListUsers, ListGroups and ListGroupMemberships API operations. This value is generated by the identity store service. It is returned in the API response if the total  */
    NextToken?: string;
}
export interface ListGroupMembershipsForMemberInput {
    /** The globally unique identifier for the identity store. */
    IdentityStoreId: string;
    /** An object that contains the identifier of a group member. Setting the UserID field to the specific identifier for a user indicates that the user is a member of the group. */
    MemberId: {
        UserId?: string;
    };
    /** The maximum number of results to be returned per request. This parameter is used in the ListUsers and ListGroups requests to specify how many results to return in one page. The length limit is 50 char */
    MaxResults?: number;
    /** The pagination token used for the ListUsers, ListGroups, and ListGroupMemberships API operations. This value is generated by the identity store service. It is returned in the API response if the total */
    NextToken?: string;
}
export interface ListGroupsInput {
    /** The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string that contains numbers and lower case l */
    IdentityStoreId: string;
    /** A list of Filter objects, which is used in the ListUsers and ListGroups requests. */
    Filters?: Filter[];
    /** The maximum number of results to be returned per request. This parameter is used in the ListUsers and ListGroups requests to specify how many results to return in one page. The length limit is 50 char */
    MaxResults?: number;
    /** The pagination token used for the ListUsers and ListGroups API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than  */
    NextToken?: string;
}
export interface ListUsersInput {
    /** The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string that contains numbers and lower case l */
    IdentityStoreId: string;
    /** A collection of extension names indicating what extensions the service should retrieve alongside other user attributes. aws:identitystore:enterprise is the only supported extension name. */
    Extensions?: string[];
    /** A list of Filter objects, which is used in the ListUsers and ListGroups requests. */
    Filters?: Filter[];
    /** The maximum number of results to be returned per request. This parameter is used in the ListUsers and ListGroups requests to specify how many results to return in one page. The length limit is 50 char */
    MaxResults?: number;
    /** The pagination token used for the ListUsers and ListGroups API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than  */
    NextToken?: string;
}
export interface UpdateGroupInput {
    /** The identifier for a group in the identity store. */
    GroupId: string;
    /** The globally unique identifier for the identity store. */
    IdentityStoreId: string;
    /** A list of AttributeOperation objects to apply to the requested group. These operations might add, replace, or remove an attribute. For more information on the attributes that can be added, replaced, o */
    Operations: AttributeOperation[];
}
export interface UpdateUserInput {
    /** The globally unique identifier for the identity store. */
    IdentityStoreId: string;
    /** A list of AttributeOperation objects to apply to the requested user. These operations might add, replace, or remove an attribute. For more information on the attributes that can be added, replaced, or */
    Operations: AttributeOperation[];
    /** The identifier for a user in the identity store. */
    UserId: string;
}
/** identitystore service binding for Step Functions SDK integrations. */
export declare class identitystore {
    constructor();
    createGroup<T>(params: CreateGroupInput): Promise<T>;
    createGroupMembership<T>(params: CreateGroupMembershipInput): Promise<T>;
    createUser<T>(params: CreateUserInput): Promise<T>;
    deleteGroup<T>(params: DeleteGroupInput): Promise<T>;
    deleteGroupMembership<T>(params: DeleteGroupMembershipInput): Promise<T>;
    deleteUser<T>(params: DeleteUserInput): Promise<T>;
    describeGroup<T>(params: DescribeGroupInput): Promise<T>;
    describeGroupMembership<T>(params: DescribeGroupMembershipInput): Promise<T>;
    describeUser<T>(params: DescribeUserInput): Promise<T>;
    getGroupId<T>(params: GetGroupIdInput): Promise<T>;
    getGroupMembershipId<T>(params: GetGroupMembershipIdInput): Promise<T>;
    getUserId<T>(params: GetUserIdInput): Promise<T>;
    isMemberInGroups<T>(params: IsMemberInGroupsInput): Promise<T>;
    listGroupMemberships<T>(params: ListGroupMembershipsInput): Promise<T>;
    listGroupMembershipsForMember<T>(params: ListGroupMembershipsForMemberInput): Promise<T>;
    listGroups<T>(params: ListGroupsInput): Promise<T>;
    listUsers<T>(params: ListUsersInput): Promise<T>;
    updateGroup<T>(params: UpdateGroupInput): Promise<T>;
    updateUser<T>(params: UpdateUserInput): Promise<T>;
}
//# sourceMappingURL=identitystore.d.ts.map