export interface ResourceRequestStatusFilter {
    /** The operation types to include in the filter. */
    Operations?: 'CREATE' | 'DELETE' | 'UPDATE'[];
    /** The operation statuses to include in the filter. PENDING: The operation has been requested, but not yet initiated. IN_PROGRESS: The operation is in progress. SUCCESS: The operation completed. FAILED:  */
    OperationStatuses?: 'PENDING' | 'IN_PROGRESS' | 'SUCCESS' | 'FAILED' | 'CANCEL_IN_PROGRESS' | 'CANCEL_COMPLETE'[];
}
export interface CancelResourceRequestInput {
    /** The RequestToken of the ProgressEvent object returned by the resource operation request. */
    RequestToken: string;
}
export interface CreateResourceInput {
    /** Structured data format representing the desired state of the resource, consisting of that resource's properties and their desired values. Cloud Control API currently supports JSON as a structured data */
    DesiredState: string;
    /** The name of the resource type. */
    TypeName: string;
    /** A unique identifier to ensure the idempotency of the resource request. As a best practice, specify this token to ensure idempotency, so that Amazon Web Services Cloud Control API can accurately distin */
    ClientToken?: string;
    /** The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role for Cloud Control API to use when performing this resource operation. The role specified must have the permissions requi */
    RoleArn?: string;
    /** For private resource types, the type version to use in this resource operation. If you do not specify a resource version, CloudFormation uses the default version. */
    TypeVersionId?: string;
}
export interface DeleteResourceInput {
    /** The identifier for the resource. You can specify the primary identifier, or any secondary identifier defined for the resource type in its resource schema. You can only specify one identifier. Primary  */
    Identifier: string;
    /** The name of the resource type. */
    TypeName: string;
    /** A unique identifier to ensure the idempotency of the resource request. As a best practice, specify this token to ensure idempotency, so that Amazon Web Services Cloud Control API can accurately distin */
    ClientToken?: string;
    /** The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role for Cloud Control API to use when performing this resource operation. The role specified must have the permissions requi */
    RoleArn?: string;
    /** For private resource types, the type version to use in this resource operation. If you do not specify a resource version, CloudFormation uses the default version. */
    TypeVersionId?: string;
}
export interface GetResourceInput {
    /** The identifier for the resource. You can specify the primary identifier, or any secondary identifier defined for the resource type in its resource schema. You can only specify one identifier. Primary  */
    Identifier: string;
    /** The name of the resource type. */
    TypeName: string;
    /** The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role for Cloud Control API to use when performing this resource operation. The role specified must have the permissions requi */
    RoleArn?: string;
    /** For private resource types, the type version to use in this resource operation. If you do not specify a resource version, CloudFormation uses the default version. */
    TypeVersionId?: string;
}
export interface GetResourceRequestStatusInput {
    /** A unique token used to track the progress of the resource operation request. Request tokens are included in the ProgressEvent type returned by a resource operation request. */
    RequestToken: string;
}
export interface ListResourceRequestsInput {
    /** The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken r */
    MaxResults?: number;
    /** If the previous paginated request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call this action a */
    NextToken?: string;
    /** The filter criteria to apply to the requests returned. */
    ResourceRequestStatusFilter?: ResourceRequestStatusFilter;
}
export interface ListResourcesInput {
    /** The name of the resource type. */
    TypeName: string;
    /** Reserved. */
    MaxResults?: number;
    /** If the previous paginated request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call this action a */
    NextToken?: string;
    /** The resource model to use to select the resources to return. */
    ResourceModel?: string;
    /** The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role for Cloud Control API to use when performing this resource operation. The role specified must have the permissions requi */
    RoleArn?: string;
    /** For private resource types, the type version to use in this resource operation. If you do not specify a resource version, CloudFormation uses the default version. */
    TypeVersionId?: string;
}
export interface UpdateResourceInput {
    /** The identifier for the resource. You can specify the primary identifier, or any secondary identifier defined for the resource type in its resource schema. You can only specify one identifier. Primary  */
    Identifier: string;
    /** A JavaScript Object Notation (JSON) document listing the patch operations that represent the updates to apply to the current resource properties. For details, see Composing the patch document in the A */
    PatchDocument: string;
    /** The name of the resource type. */
    TypeName: string;
    /** A unique identifier to ensure the idempotency of the resource request. As a best practice, specify this token to ensure idempotency, so that Amazon Web Services Cloud Control API can accurately distin */
    ClientToken?: string;
    /** The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role for Cloud Control API to use when performing this resource operation. The role specified must have the permissions requi */
    RoleArn?: string;
    /** For private resource types, the type version to use in this resource operation. If you do not specify a resource version, CloudFormation uses the default version. */
    TypeVersionId?: string;
}
/** CloudControl service binding for Step Functions SDK integrations. */
export declare class CloudControl {
    constructor();
    cancelResourceRequest<T>(params: CancelResourceRequestInput): Promise<T>;
    createResource<T>(params: CreateResourceInput): Promise<T>;
    deleteResource<T>(params: DeleteResourceInput): Promise<T>;
    getResource<T>(params: GetResourceInput): Promise<T>;
    getResourceRequestStatus<T>(params: GetResourceRequestStatusInput): Promise<T>;
    listResourceRequests<T>(params: ListResourceRequestsInput): Promise<T>;
    listResources<T>(params: ListResourcesInput): Promise<T>;
    updateResource<T>(params: UpdateResourceInput): Promise<T>;
}
//# sourceMappingURL=CloudControl.d.ts.map