export interface BackupCreationTimeFilter {
    /** This timestamp includes recovery points only created after the specified time. */
    CreatedAfter?: string;
    /** This timestamp includes recovery points only created before the specified time. */
    CreatedBefore?: string;
}
export interface SearchScope {
    /** The resource types included in a search. Eligible resource types include S3 and EBS. */
    BackupResourceTypes: 'S3' | 'EBS'[];
    /** This is the time a backup resource was created. */
    BackupResourceCreationTime?: BackupCreationTimeFilter;
    /** The Amazon Resource Name (ARN) that uniquely identifies the source resources. */
    SourceResourceArns?: string[];
    /** The Amazon Resource Name (ARN) that uniquely identifies the backup resources. */
    BackupResourceArns?: string[];
    /** These are one or more tags on the backup (recovery point). */
    BackupResourceTags?: Record<string, string>;
}
export interface ItemFilters {
    /** This array can contain CreationTimes, ETags, ObjectKeys, Sizes, or VersionIds objects. */
    S3ItemFilters?: any[];
    /** This array can contain CreationTimes, FilePaths, LastModificationTimes, or Sizes objects. */
    EBSItemFilters?: any[];
}
export interface S3ExportSpecification {
    /** This specifies the destination Amazon S3 bucket for the export job. */
    DestinationBucket: string;
    /** This specifies the prefix for the destination Amazon S3 bucket for the export job. */
    DestinationPrefix?: string;
}
export interface GetSearchJobInput {
    /** Required unique string that specifies the search job. */
    SearchJobIdentifier: string;
}
export interface GetSearchResultExportJobInput {
    /** This is the unique string that identifies a specific export job. Required for this operation. */
    ExportJobIdentifier: string;
}
export interface ListSearchJobBackupsInput {
    /** The unique string that specifies the search job. */
    SearchJobIdentifier: string;
    /** The maximum number of resource list items to be returned. */
    MaxResults?: number;
    /** The next item following a partial list of returned backups included in a search job. For example, if a request is made to return MaxResults number of backups, NextToken allows you to return more items */
    NextToken?: string;
}
export interface ListSearchJobResultsInput {
    /** The unique string that specifies the search job. */
    SearchJobIdentifier: string;
    /** The maximum number of resource list items to be returned. */
    MaxResults?: number;
    /** The next item following a partial list of returned search job results. For example, if a request is made to return MaxResults number of search job results, NextToken allows you to return more items in */
    NextToken?: string;
}
export interface ListSearchJobsInput {
    /** Include this parameter to filter list by search job status. */
    ByStatus?: 'RUNNING' | 'COMPLETED' | 'STOPPING' | 'STOPPED' | 'FAILED';
    /** The maximum number of resource list items to be returned. */
    MaxResults?: number;
    /** The next item following a partial list of returned search jobs. For example, if a request is made to return MaxResults number of backups, NextToken allows you to return more items in your list startin */
    NextToken?: string;
}
export interface ListSearchResultExportJobsInput {
    /** The maximum number of resource list items to be returned. */
    MaxResults?: number;
    /** The next item following a partial list of returned backups included in a search job. For example, if a request is made to return MaxResults number of backups, NextToken allows you to return more items */
    NextToken?: string;
    /** The unique string that specifies the search job. */
    SearchJobIdentifier?: string;
    /** The search jobs to be included in the export job can be filtered by including this parameter. */
    Status?: 'RUNNING' | 'FAILED' | 'COMPLETED';
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) that uniquely identifies the resource.&gt; */
    ResourceArn: string;
}
export interface StartSearchJobInput {
    /** This object can contain BackupResourceTypes, BackupResourceArns, BackupResourceCreationTime, BackupResourceTags, and SourceResourceArns to filter the recovery points returned by the search job. */
    SearchScope: SearchScope;
    /** Include this parameter to allow multiple identical calls for idempotency. A client token is valid for 8 hours after the first request that uses it is completed. After this time, any request with the s */
    ClientToken?: string;
    /** The encryption key for the specified search job. */
    EncryptionKeyArn?: string;
    /** Item Filters represent all input item properties specified when the search was created. Contains either EBSItemFilters or S3ItemFilters */
    ItemFilters?: ItemFilters;
    /** Include alphanumeric characters to create a name for this search job. */
    Name?: string;
    /** List of tags returned by the operation. */
    Tags?: Record<string, string>;
}
export interface StartSearchResultExportJobInput {
    /** This specification contains a required string of the destination bucket; optionally, you can include the destination prefix. */
    ExportSpecification: {
        s3ExportSpecification?: S3ExportSpecification;
    };
    /** The unique string that specifies the search job. */
    SearchJobIdentifier: string;
    /** Include this parameter to allow multiple identical calls for idempotency. A client token is valid for 8 hours after the first request that uses it is completed. After this time, any request with the s */
    ClientToken?: string;
    /** This parameter specifies the role ARN used to start the search results export jobs. */
    RoleArn?: string;
    /** Optional tags to include. A tag is a key-value pair you can use to manage, filter, and search for your resources. Allowed characters include UTF-8 letters, numbers, spaces, and the following character */
    Tags?: Record<string, string>;
}
export interface StopSearchJobInput {
    /** The unique string that specifies the search job. */
    SearchJobIdentifier: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) that uniquely identifies the resource. This is the resource that will have the indicated tags. */
    ResourceArn: string;
    /** Required tags to include. A tag is a key-value pair you can use to manage, filter, and search for your resources. Allowed characters include UTF-8 letters, numbers, spaces, and the following character */
    Tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) that uniquely identifies the resource where you want to remove tags. */
    ResourceArn: string;
    /** This required parameter contains the tag keys you want to remove from the source. */
    TagKeys: string[];
}
/** BackupSearch service binding for Step Functions SDK integrations. */
export declare class BackupSearch {
    constructor();
    getSearchJob<T>(params: GetSearchJobInput): Promise<T>;
    getSearchResultExportJob<T>(params: GetSearchResultExportJobInput): Promise<T>;
    listSearchJobBackups<T>(params: ListSearchJobBackupsInput): Promise<T>;
    listSearchJobResults<T>(params: ListSearchJobResultsInput): Promise<T>;
    listSearchJobs<T>(params: ListSearchJobsInput): Promise<T>;
    listSearchResultExportJobs<T>(params: ListSearchResultExportJobsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    startSearchJob<T>(params: StartSearchJobInput): Promise<T>;
    startSearchResultExportJob<T>(params: StartSearchResultExportJobInput): Promise<T>;
    stopSearchJob<T>(params: StopSearchJobInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
}
//# sourceMappingURL=BackupSearch.d.ts.map