export interface ResourceQuery {
    /** The type of the query to perform. This can have one of two values: CLOUDFORMATION_STACK_1_0: Specifies that you want the group to contain the members of an CloudFormation stack. The Query contains a S */
    Type: 'TAG_FILTERS_1_0' | 'CLOUDFORMATION_STACK_1_0';
    /** The query that defines a group or a search. The contents depends on the value of the Type element. ResourceTypeFilters – Applies to all ResourceQuery objects of either Type. This element contains one  */
    Query: string;
}
export interface GroupConfigurationItem {
    /** Specifies the type of group configuration item. Each item must have a unique value for type. For the list of types that you can specify for a configuration item, see Supported resource types and param */
    Type: string;
    /** A collection of parameters for this group configuration item. For the list of parameters that you can use with each configuration item type, see Supported resource types and parameters. */
    Parameters?: any[];
}
export interface ListGroupingStatusesFilter {
    /** The name of the filter. Filter names are case-sensitive. */
    Name: 'status' | 'resource-arn';
    /** One or more filter values. Allowed filter values vary by resource filter name, and are case-sensitive. */
    Values: any[];
}
export interface ResourceFilter {
    /** The name of the filter. Filter names are case-sensitive. */
    Name: 'resource-type';
    /** One or more filter values. Allowed filter values vary by resource filter name, and are case-sensitive. */
    Values: any[];
}
export interface GroupFilter {
    /** The name of the filter. Filter names are case-sensitive. */
    Name: 'resource-type' | 'configuration-type' | 'owner' | 'display-name' | 'criticality';
    /** One or more filter values. Allowed filter values vary by group filter name, and are case-sensitive. */
    Values: any[];
}
export interface ListTagSyncTasksFilter {
    /** The Amazon resource name (ARN) of the application group. */
    GroupArn?: string;
    /** The name of the application group. */
    GroupName?: string;
}
export interface CancelTagSyncTaskInput {
    /** The Amazon resource name (ARN) of the tag-sync task. */
    TaskArn: string;
}
export interface CreateGroupInput {
    /** The name of the group, which is the identifier of the group in other operations. You can't change the name of a resource group after you create it. A resource group name can consist of letters, number */
    Name: string;
    /** A configuration associates the resource group with an Amazon Web Services service and specifies how the service can interact with the resources in the group. A configuration is an array of GroupConfig */
    Configuration?: GroupConfigurationItem[];
    /** The critical rank of the application group on a scale of 1 to 10, with a rank of 1 being the most critical, and a rank of 10 being least critical. */
    Criticality?: number;
    /** The description of the resource group. Descriptions can consist of letters, numbers, hyphens, underscores, periods, and spaces. */
    Description?: string;
    /** The name of the application group, which you can change at any time. */
    DisplayName?: string;
    /** A name, email address or other identifier for the person or group who is considered as the owner of this application group within your organization. */
    Owner?: string;
    /** The resource query that determines which Amazon Web Services resources are members of this group. For more information about resource queries, see Create a tag-based group in Resource Groups. A resour */
    ResourceQuery?: ResourceQuery;
    /** The tags to add to the group. A tag is key-value pair string. */
    Tags?: Record<string, string>;
}
export interface DeleteGroupInput {
    /** The name or the Amazon resource name (ARN) of the resource group to delete. */
    Group?: string;
    /** Deprecated - don't use this parameter. Use Group instead. */
    GroupName?: string;
}
export interface GetGroupInput {
    /** The name or the Amazon resource name (ARN) of the resource group to retrieve. */
    Group?: string;
    /** Deprecated - don't use this parameter. Use Group instead. */
    GroupName?: string;
}
export interface GetGroupConfigurationInput {
    /** The name or the Amazon resource name (ARN) of the resource group for which you want to retrive the service configuration. */
    Group?: string;
}
export interface GetGroupQueryInput {
    /** The name or the Amazon resource name (ARN) of the resource group to query. */
    Group?: string;
    /** Don't use this parameter. Use Group instead. */
    GroupName?: string;
}
export interface GetTagsInput {
    /** The Amazon resource name (ARN) of the resource group whose tags you want to retrieve. */
    Arn: string;
}
export interface GetTagSyncTaskInput {
    /** The Amazon resource name (ARN) of the tag-sync task. */
    TaskArn: string;
}
export interface GroupResourcesInput {
    /** The name or the Amazon resource name (ARN) of the resource group to add resources to. */
    Group: string;
    /** The list of Amazon resource names (ARNs) of the resources to be added to the group. */
    ResourceArns: string[];
}
export interface ListGroupingStatusesInput {
    /** The application group identifier, expressed as an Amazon resource name (ARN) or the application group name. */
    Group: string;
    /** The filter name and value pair that is used to return more specific results from a list of resources. */
    Filters?: ListGroupingStatusesFilter[];
    /** The maximum number of resources and their statuses returned in the response. */
    MaxResults?: number;
    /** The parameter for receiving additional results if you receive a NextToken response in a previous request. A NextToken response indicates that more output is available. Set this parameter to the value  */
    NextToken?: string;
}
export interface ListGroupResourcesInput {
    /** Filters, formatted as ResourceFilter objects, that you want to apply to a ListGroupResources operation. Filters the results to include only those of the specified resource types. resource-type - Filte */
    Filters?: ResourceFilter[];
    /** The name or the Amazon resource name (ARN) of the resource group. */
    Group?: string;
    /** Deprecated - don't use this parameter. Use the Group request field instead. */
    GroupName?: string;
    /** The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exi */
    MaxResults?: number;
    /** The parameter for receiving additional results if you receive a NextToken response in a previous request. A NextToken response indicates that more output is available. Set this parameter to the value  */
    NextToken?: string;
}
export interface ListGroupsInput {
    /** Filters, formatted as GroupFilter objects, that you want to apply to a ListGroups operation. resource-type - Filter the results to include only those resource groups that have the specified resource t */
    Filters?: GroupFilter[];
    /** The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exi */
    MaxResults?: number;
    /** The parameter for receiving additional results if you receive a NextToken response in a previous request. A NextToken response indicates that more output is available. Set this parameter to the value  */
    NextToken?: string;
}
export interface ListTagSyncTasksInput {
    /** The Amazon resource name (ARN) or name of the application group for which you want to return a list of tag-sync tasks. */
    Filters?: ListTagSyncTasksFilter[];
    /** The maximum number of results to be included in the response. */
    MaxResults?: number;
    /** The parameter for receiving additional results if you receive a NextToken response in a previous request. A NextToken response indicates that more output is available. Set this parameter to the value  */
    NextToken?: string;
}
export interface PutGroupConfigurationInput {
    /** The new configuration to associate with the specified group. A configuration associates the resource group with an Amazon Web Services service and specifies how the service can interact with the resou */
    Configuration?: GroupConfigurationItem[];
    /** The name or Amazon resource name (ARN) of the resource group with the configuration that you want to update. */
    Group?: string;
}
export interface SearchResourcesInput {
    /** The search query, using the same formats that are supported for resource group definition. For more information, see CreateGroup. */
    ResourceQuery: ResourceQuery;
    /** The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exi */
    MaxResults?: number;
    /** The parameter for receiving additional results if you receive a NextToken response in a previous request. A NextToken response indicates that more output is available. Set this parameter to the value  */
    NextToken?: string;
}
export interface StartTagSyncTaskInput {
    /** The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task. */
    Group: string;
    /** The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf. */
    RoleArn: string;
    /** The query you can use to create the tag-sync task. With this method, all resources matching the query are added to the specified application group. A ResourceQuery specifies both a query Type and a Qu */
    ResourceQuery?: ResourceQuery;
    /** The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. */
    TagKey?: string;
    /** The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the applicatio */
    TagValue?: string;
}
export interface TagInput {
    /** The Amazon resource name (ARN) of the resource group to which to add tags. */
    Arn: string;
    /** The tags to add to the specified resource group. A tag is a string-to-string map of key-value pairs. */
    Tags: Record<string, string>;
}
export interface UngroupResourcesInput {
    /** The name or the Amazon resource name (ARN) of the resource group from which to remove the resources. */
    Group: string;
    /** The Amazon resource names (ARNs) of the resources to be removed from the group. */
    ResourceArns: string[];
}
export interface UntagInput {
    /** The Amazon resource name (ARN) of the resource group from which to remove tags. The command removed both the specified keys and any values associated with those keys. */
    Arn: string;
    /** The keys of the tags to be removed. */
    Keys: string[];
}
export interface UpdateAccountSettingsInput {
    /** Specifies whether you want to turn group lifecycle events on or off. You can't turn on group lifecycle events if your resource groups quota is greater than 2,000. */
    GroupLifecycleEventsDesiredStatus?: 'ACTIVE' | 'INACTIVE';
}
export interface UpdateGroupInput {
    /** The critical rank of the application group on a scale of 1 to 10, with a rank of 1 being the most critical, and a rank of 10 being least critical. */
    Criticality?: number;
    /** The new description that you want to update the resource group with. Descriptions can contain letters, numbers, hyphens, underscores, periods, and spaces. */
    Description?: string;
    /** The name of the application group, which you can change at any time. */
    DisplayName?: string;
    /** The name or the ARN of the resource group to update. */
    Group?: string;
    /** Don't use this parameter. Use Group instead. */
    GroupName?: string;
    /** A name, email address or other identifier for the person or group who is considered as the owner of this application group within your organization. */
    Owner?: string;
}
export interface UpdateGroupQueryInput {
    /** The resource query to determine which Amazon Web Services resources are members of this resource group. A resource group can contain either a Configuration or a ResourceQuery, but not both. */
    ResourceQuery: ResourceQuery;
    /** The name or the Amazon resource name (ARN) of the resource group to query. */
    Group?: string;
    /** Don't use this parameter. Use Group instead. */
    GroupName?: string;
}
/** Resource Groups service binding for Step Functions SDK integrations. */
export declare class ResourceGroups {
    constructor();
    cancelTagSyncTask<T>(params: CancelTagSyncTaskInput): Promise<T>;
    createGroup<T>(params: CreateGroupInput): Promise<T>;
    deleteGroup<T>(params: DeleteGroupInput): Promise<T>;
    getAccountSettings<T>(): Promise<T>;
    getGroup<T>(params: GetGroupInput): Promise<T>;
    getGroupConfiguration<T>(params: GetGroupConfigurationInput): Promise<T>;
    getGroupQuery<T>(params: GetGroupQueryInput): Promise<T>;
    getTags<T>(params: GetTagsInput): Promise<T>;
    getTagSyncTask<T>(params: GetTagSyncTaskInput): Promise<T>;
    groupResources<T>(params: GroupResourcesInput): Promise<T>;
    listGroupingStatuses<T>(params: ListGroupingStatusesInput): Promise<T>;
    listGroupResources<T>(params: ListGroupResourcesInput): Promise<T>;
    listGroups<T>(params: ListGroupsInput): Promise<T>;
    listTagSyncTasks<T>(params: ListTagSyncTasksInput): Promise<T>;
    putGroupConfiguration<T>(params: PutGroupConfigurationInput): Promise<T>;
    searchResources<T>(params: SearchResourcesInput): Promise<T>;
    startTagSyncTask<T>(params: StartTagSyncTaskInput): Promise<T>;
    tag<T>(params: TagInput): Promise<T>;
    ungroupResources<T>(params: UngroupResourcesInput): Promise<T>;
    untag<T>(params: UntagInput): Promise<T>;
    updateAccountSettings<T>(params: UpdateAccountSettingsInput): Promise<T>;
    updateGroup<T>(params: UpdateGroupInput): Promise<T>;
    updateGroupQuery<T>(params: UpdateGroupQueryInput): Promise<T>;
}
//# sourceMappingURL=ResourceGroups.d.ts.map