export interface TagQueryConfiguration {
    /** Condition in the IAM policy that associates resources to an application. */
    tagKey?: string;
}
export interface AppRegistryConfiguration {
    /** Includes the definition of a tagQuery. */
    tagQueryConfiguration?: TagQueryConfiguration;
}
export interface AssociateAttributeGroupInput {
    /** The name, ID, or ARN of the application. */
    application: string;
    /** The name, ID, or ARN of the attribute group that holds the attributes to describe the application. */
    attributeGroup: string;
}
export interface AssociateResourceInput {
    /** The name, ID, or ARN of the application. */
    application: string;
    /** The name or ID of the resource of which the application will be associated. */
    resource: string;
    /** The type of resource of which the application will be associated. */
    resourceType: 'CFN_STACK' | 'RESOURCE_TAG_VALUE';
    /** Determines whether an application tag is applied or skipped. */
    options?: 'APPLY_APPLICATION_TAG' | 'SKIP_APPLICATION_TAG'[];
}
export interface CreateApplicationInput {
    /** A unique identifier that you provide to ensure idempotency. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performin */
    clientToken: string;
    /** The name of the application. The name must be unique in the region in which you are creating the application. */
    name: string;
    /** The description of the application. */
    description?: string;
    /** Key-value pairs you can use to associate with the application. */
    tags?: Record<string, string>;
}
export interface CreateAttributeGroupInput {
    /** A JSON string in the form of nested key-value pairs that represent the attributes in the group and describes an application and its components. */
    attributes: string;
    /** A unique identifier that you provide to ensure idempotency. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performin */
    clientToken: string;
    /** The name of the attribute group. */
    name: string;
    /** The description of the attribute group that the user provides. */
    description?: string;
    /** Key-value pairs you can use to associate with the attribute group. */
    tags?: Record<string, string>;
}
export interface DeleteApplicationInput {
    /** The name, ID, or ARN of the application. */
    application: string;
}
export interface DeleteAttributeGroupInput {
    /** The name, ID, or ARN of the attribute group that holds the attributes to describe the application. */
    attributeGroup: string;
}
export interface DisassociateAttributeGroupInput {
    /** The name, ID, or ARN of the application. */
    application: string;
    /** The name, ID, or ARN of the attribute group that holds the attributes to describe the application. */
    attributeGroup: string;
}
export interface DisassociateResourceInput {
    /** The name or ID of the application. */
    application: string;
    /** The name or ID of the resource. */
    resource: string;
    /** The type of the resource that is being disassociated. */
    resourceType: 'CFN_STACK' | 'RESOURCE_TAG_VALUE';
}
export interface GetApplicationInput {
    /** The name, ID, or ARN of the application. */
    application: string;
}
export interface GetAssociatedResourceInput {
    /** The name, ID, or ARN of the application. */
    application: string;
    /** The name or ID of the resource associated with the application. */
    resource: string;
    /** The type of resource associated with the application. */
    resourceType: 'CFN_STACK' | 'RESOURCE_TAG_VALUE';
    /** The maximum number of results to return. If the parameter is omitted, it defaults to 25. The value is optional. */
    maxResults?: number;
    /** A unique pagination token for each page of results. Make the call again with the returned token to retrieve the next page of results. */
    nextToken?: string;
    /** States whether an application tag is applied, not applied, in the process of being applied, or skipped. */
    resourceTagStatus?: 'SUCCESS' | 'FAILED' | 'IN_PROGRESS' | 'SKIPPED'[];
}
export interface GetAttributeGroupInput {
    /** The name, ID, or ARN of the attribute group that holds the attributes to describe the application. */
    attributeGroup: string;
}
export interface ListApplicationsInput {
    /** The upper bound of the number of results to return (cannot exceed 25). If this parameter is omitted, it defaults to 25. This value is optional. */
    maxResults?: number;
    /** The token to use to get the next page of results after a previous API call. */
    nextToken?: string;
}
export interface ListAssociatedAttributeGroupsInput {
    /** The name or ID of the application. */
    application: string;
    /** The upper bound of the number of results to return (cannot exceed 25). If this parameter is omitted, it defaults to 25. This value is optional. */
    maxResults?: number;
    /** The token to use to get the next page of results after a previous API call. */
    nextToken?: string;
}
export interface ListAssociatedResourcesInput {
    /** The name, ID, or ARN of the application. */
    application: string;
    /** The upper bound of the number of results to return (cannot exceed 25). If this parameter is omitted, it defaults to 25. This value is optional. */
    maxResults?: number;
    /** The token to use to get the next page of results after a previous API call. */
    nextToken?: string;
}
export interface ListAttributeGroupsInput {
    /** The upper bound of the number of results to return (cannot exceed 25). If this parameter is omitted, it defaults to 25. This value is optional. */
    maxResults?: number;
    /** The token to use to get the next page of results after a previous API call. */
    nextToken?: string;
}
export interface ListAttributeGroupsForApplicationInput {
    /** The name or ID of the application. */
    application: string;
    /** The upper bound of the number of results to return. The value cannot exceed 25. If you omit this parameter, it defaults to 25. This value is optional. */
    maxResults?: number;
    /** This token retrieves the next page of results after a previous API call. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon resource name (ARN) that specifies the resource. */
    resourceArn: string;
}
export interface PutConfigurationInput {
    /** Associates a TagKey configuration to an account. */
    configuration: AppRegistryConfiguration;
}
export interface SyncResourceInput {
    /** An entity you can work with and specify with a name or ID. Examples include an Amazon EC2 instance, an Amazon Web Services CloudFormation stack, or an Amazon S3 bucket. */
    resource: string;
    /** The type of resource of which the application will be associated. */
    resourceType: 'CFN_STACK' | 'RESOURCE_TAG_VALUE';
}
export interface TagResourceInput {
    /** The Amazon resource name (ARN) that specifies the resource. */
    resourceArn: string;
    /** The new or modified tags for the resource. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon resource name (ARN) that specifies the resource. */
    resourceArn: string;
    /** A list of the tag keys to remove from the specified resource. */
    tagKeys: string[];
}
export interface UpdateApplicationInput {
    /** The name, ID, or ARN of the application that will be updated. */
    application: string;
    /** The new description of the application. */
    description?: string;
    /** Deprecated: The new name of the application. The name must be unique in the region in which you are updating the application. Please do not use this field as we have stopped supporting name updates. */
    name?: string;
}
export interface UpdateAttributeGroupInput {
    /** The name, ID, or ARN of the attribute group that holds the attributes to describe the application. */
    attributeGroup: string;
    /** A JSON string in the form of nested key-value pairs that represent the attributes in the group and describes an application and its components. */
    attributes?: string;
    /** The description of the attribute group that the user provides. */
    description?: string;
    /** Deprecated: The new name of the attribute group. The name must be unique in the region in which you are updating the attribute group. Please do not use this field as we have stopped supporting name up */
    name?: string;
}
/** Service Catalog AppRegistry service binding for Step Functions SDK integrations. */
export declare class ServiceCatalogAppRegistry {
    constructor();
    associateAttributeGroup<T>(params: AssociateAttributeGroupInput): Promise<T>;
    associateResource<T>(params: AssociateResourceInput): Promise<T>;
    createApplication<T>(params: CreateApplicationInput): Promise<T>;
    createAttributeGroup<T>(params: CreateAttributeGroupInput): Promise<T>;
    deleteApplication<T>(params: DeleteApplicationInput): Promise<T>;
    deleteAttributeGroup<T>(params: DeleteAttributeGroupInput): Promise<T>;
    disassociateAttributeGroup<T>(params: DisassociateAttributeGroupInput): Promise<T>;
    disassociateResource<T>(params: DisassociateResourceInput): Promise<T>;
    getApplication<T>(params: GetApplicationInput): Promise<T>;
    getAssociatedResource<T>(params: GetAssociatedResourceInput): Promise<T>;
    getAttributeGroup<T>(params: GetAttributeGroupInput): Promise<T>;
    getConfiguration<T>(): Promise<T>;
    listApplications<T>(params: ListApplicationsInput): Promise<T>;
    listAssociatedAttributeGroups<T>(params: ListAssociatedAttributeGroupsInput): Promise<T>;
    listAssociatedResources<T>(params: ListAssociatedResourcesInput): Promise<T>;
    listAttributeGroups<T>(params: ListAttributeGroupsInput): Promise<T>;
    listAttributeGroupsForApplication<T>(params: ListAttributeGroupsForApplicationInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    putConfiguration<T>(params: PutConfigurationInput): Promise<T>;
    syncResource<T>(params: SyncResourceInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateApplication<T>(params: UpdateApplicationInput): Promise<T>;
    updateAttributeGroup<T>(params: UpdateAttributeGroupInput): Promise<T>;
}
//# sourceMappingURL=ServiceCatalogAppRegistry.d.ts.map