export interface ScriptModeConfig {
    /** The entry point in the algorithm scripts from where the execution begins in the hybrid job. */
    entryPoint: string;
    /** The URI that specifies the S3 path to the algorithm scripts used by an Amazon Braket hybrid job. */
    s3Uri: string;
    /** The type of compression used to store the algorithm scripts in Amazon S3 storage. */
    compressionType?: 'NONE' | 'GZIP';
}
export interface ContainerImage {
    /** The URI locating the container image. */
    uri: string;
}
export interface AlgorithmSpecification {
    /** Configures the paths to the Python scripts used for entry and training. */
    scriptModeConfig?: ScriptModeConfig;
    /** The container image used to create an Amazon Braket hybrid job. */
    containerImage?: ContainerImage;
}
export interface InputFileConfig {
    /** A named input source that an Amazon Braket hybrid job can consume. */
    channelName: string;
    /** The MIME type of the data. */
    contentType?: string;
    /** The location of the input data. */
    dataSource: any;
}
export interface JobOutputDataConfig {
    /** The AWS Key Management Service (AWS KMS) key that Amazon Braket uses to encrypt the hybrid job training artifacts at rest using Amazon S3 server-side encryption. */
    kmsKeyId?: string;
    /** Identifies the S3 path where you want Amazon Braket to store the hybrid job training artifacts. For example, s3://bucket-name/key-name-prefix. */
    s3Path: string;
}
export interface JobCheckpointConfig {
    /** (Optional) The local directory where checkpoint data is stored. The default directory is /opt/braket/checkpoints/. */
    localPath?: string;
    /** Identifies the S3 path where you want Amazon Braket to store checkpoint data. For example, s3://bucket-name/key-name-prefix. */
    s3Uri: string;
}
export interface JobStoppingCondition {
    /** The maximum length of time, in seconds, that an Amazon Braket hybrid job can run. */
    maxRuntimeInSeconds?: number;
}
export interface InstanceConfig {
    /** Configures the type of resource instances to use while running an Amazon Braket hybrid job. */
    instanceType: 'ml.m4.xlarge' | 'ml.m4.2xlarge' | 'ml.m4.4xlarge' | 'ml.m4.10xlarge' | 'ml.m4.16xlarge' | 'ml.g4dn.xlarge' | 'ml.g4dn.2xlarge' | 'ml.g4dn.4xlarge' | 'ml.g4dn.8xlarge' | 'ml.g4dn.12xlarge' | 'ml.g4dn.16xlarge' | 'ml.m5.large' | 'ml.m5.xlarge' | 'ml.m5.2xlarge' | 'ml.m5.4xlarge' | 'ml.m5.12xlarge' | 'ml.m5.24xlarge' | 'ml.c4.xlarge' | 'ml.c4.2xlarge' | 'ml.c4.4xlarge' | 'ml.c4.8xlarge' | 'ml.p2.xlarge' | 'ml.p2.8xlarge' | 'ml.p2.16xlarge' | 'ml.p3.2xlarge' | 'ml.p3.8xlarge' | 'ml.p3.16xlarge' | 'ml.p3dn.24xlarge' | 'ml.p4d.24xlarge' | 'ml.c5.xlarge' | 'ml.c5.2xlarge' | 'ml.c5.4xlarge' | 'ml.c5.9xlarge' | 'ml.c5.18xlarge' | 'ml.c5n.xlarge' | 'ml.c5n.2xlarge' | 'ml.c5n.4xlarge' | 'ml.c5n.9xlarge' | 'ml.c5n.18xlarge';
    /** The size of the storage volume, in GB, to provision. */
    volumeSizeInGb: number;
    /** Configures the number of resource instances to use while running an Amazon Braket hybrid job on Amazon Braket. The default value is 1. */
    instanceCount?: number;
}
export interface DeviceConfig {
    /** The primary device ARN used to create and run an Amazon Braket hybrid job. */
    device: string;
}
export interface Association {
    /** The Amazon Braket resource arn. */
    arn: string;
    /** The association type for the specified Amazon Braket resource arn. */
    type: 'RESERVATION_TIME_WINDOW_ARN';
}
export interface TimePeriod {
    /** The start date and time for the spending limit period, in epoch seconds. */
    startAt: string;
    /** The end date and time for the spending limit period, in epoch seconds. */
    endAt: string;
}
export interface SearchDevicesFilter {
    /** The name of the device parameter to filter based on. Only deviceArn filter name is currently supported. */
    name: string;
    /** The values used to filter devices based on the filter name. */
    values: any[];
}
export interface SearchJobsFilter {
    /** The name of the hybrid job parameter to filter based on. Filter name can be either jobArn or createdAt. */
    name: string;
    /** The values used to filter hybrid jobs based on the filter name and operator. */
    values: any[];
    /** An operator to use for the filter. */
    operator: 'LT' | 'LTE' | 'EQUAL' | 'GT' | 'GTE' | 'BETWEEN' | 'CONTAINS';
}
export interface SearchQuantumTasksFilter {
    /** The name of the quantum task parameter to filter based on. Filter name can be either quantumTaskArn, deviceArn, jobArn, status or createdAt. */
    name: string;
    /** The values used to filter quantum tasks based on the filter name and operator. */
    values: any[];
    /** An operator to use for the filter. */
    operator: 'LT' | 'LTE' | 'EQUAL' | 'GT' | 'GTE' | 'BETWEEN';
}
export interface SearchSpendingLimitsFilter {
    /** The name of the field to filter on. Currently only supports deviceArn. */
    name: string;
    /** An array of values to match against the specified field. */
    values: any[];
    /** The comparison operator to use when filtering. */
    operator: 'EQUAL';
}
export interface CancelJobInput {
    /** The ARN of the Amazon Braket hybrid job to cancel. */
    jobArn: string;
}
export interface CancelQuantumTaskInput {
    /** The client token associated with the cancellation request. */
    clientToken: string;
    /** The ARN of the quantum task to cancel. */
    quantumTaskArn: string;
}
export interface CreateJobInput {
    /** Definition of the Amazon Braket job to be created. Specifies the container image the job uses and information about the Python scripts used for entry and training. */
    algorithmSpecification: AlgorithmSpecification;
    /** The client token associated with this request that guarantees that the request is idempotent. */
    clientToken: string;
    /** The quantum processing unit (QPU) or simulator used to create an Amazon Braket hybrid job. */
    deviceConfig: DeviceConfig;
    /** Configuration of the resource instances to use while running the hybrid job on Amazon Braket. */
    instanceConfig: InstanceConfig;
    /** The name of the Amazon Braket hybrid job. */
    jobName: string;
    /** The path to the S3 location where you want to store hybrid job artifacts and the encryption key used to store them. */
    outputDataConfig: JobOutputDataConfig;
    /** The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume to perform tasks on behalf of a user. It can access user resources, run an Amazon Braket job container on behalf of user, an */
    roleArn: string;
    /** The list of Amazon Braket resources associated with the hybrid job. */
    associations?: Association[];
    /** Information about the output locations for hybrid job checkpoint data. */
    checkpointConfig?: JobCheckpointConfig;
    /** Algorithm-specific parameters used by an Amazon Braket hybrid job that influence the quality of the training job. The values are set with a map of JSON key:value pairs, where the key is the name of th */
    hyperParameters?: Record<string, string>;
    /** A list of parameters that specify the name and type of input data and where it is located. */
    inputDataConfig?: InputFileConfig[];
    /** The user-defined criteria that specifies when a hybrid job stops running. */
    stoppingCondition?: JobStoppingCondition;
    /** Tags to be added to the hybrid job you're creating. */
    tags?: Record<string, string>;
}
export interface CreateQuantumTaskInput {
    /** The action associated with the quantum task. */
    action: string;
    /** The client token associated with the request. */
    clientToken: string;
    /** The ARN of the device to run the quantum task on. */
    deviceArn: string;
    /** The S3 bucket to store quantum task result files in. */
    outputS3Bucket: string;
    /** The key prefix for the location in the S3 bucket to store quantum task results in. */
    outputS3KeyPrefix: string;
    /** The number of shots to use for the quantum task. */
    shots: number;
    /** The list of Amazon Braket resources associated with the quantum task. */
    associations?: Association[];
    /** The parameters for the device to run the quantum task on. */
    deviceParameters?: string;
    /** Enable experimental capabilities for the quantum task. */
    experimentalCapabilities?: {
        enabled?: 'ALL' | 'NONE';
    };
    /** The token for an Amazon Braket hybrid job that associates it with the quantum task. */
    jobToken?: string;
    /** Tags to be added to the quantum task you're creating. */
    tags?: Record<string, string>;
}
export interface CreateSpendingLimitInput {
    /** A unique, case-sensitive identifier to ensure that the operation completes no more than one time. If this token matches a previous request, Amazon Braket ignores the request, but does not return an er */
    clientToken: string;
    /** The Amazon Resource Name (ARN) of the quantum device to apply the spending limit to. */
    deviceArn: string;
    /** The maximum amount that can be spent on the specified device, in USD. */
    spendingLimit: string;
    /** The tags to apply to the spending limit. Each tag consists of a key and an optional value. */
    tags?: Record<string, string>;
    /** The time period during which the spending limit is active, including start and end dates. */
    timePeriod?: TimePeriod;
}
export interface DeleteSpendingLimitInput {
    /** The Amazon Resource Name (ARN) of the spending limit to delete. */
    spendingLimitArn: string;
}
export interface GetDeviceInput {
    /** The ARN of the device to retrieve. */
    deviceArn: string;
}
export interface GetJobInput {
    /** The ARN of the hybrid job to retrieve. */
    jobArn: string;
    /** A list of attributes to return additional information for. Only the QueueInfo additional attribute name is currently supported. */
    additionalAttributeNames?: 'QueueInfo'[];
}
export interface GetQuantumTaskInput {
    /** The ARN of the quantum task to retrieve. */
    quantumTaskArn: string;
    /** A list of attributes to return additional information for. Only the QueueInfo additional attribute name is currently supported. */
    additionalAttributeNames?: 'QueueInfo'[];
}
export interface ListTagsForResourceInput {
    /** Specify the resourceArn for the resource whose tags to display. */
    resourceArn: string;
}
export interface SearchDevicesInput {
    /** Array of SearchDevicesFilter objects to use when searching for devices. */
    filters: SearchDevicesFilter[];
    /** The maximum number of results to return in the response. */
    maxResults?: number;
    /** A token used for pagination of results returned in the response. Use the token returned from the previous request to continue search where the previous request ended. */
    nextToken?: string;
}
export interface SearchJobsInput {
    /** Array of SearchJobsFilter objects to use when searching for hybrid jobs. */
    filters: SearchJobsFilter[];
    /** The maximum number of results to return in the response. */
    maxResults?: number;
    /** A token used for pagination of results returned in the response. Use the token returned from the previous request to continue search where the previous request ended. */
    nextToken?: string;
}
export interface SearchQuantumTasksInput {
    /** Array of SearchQuantumTasksFilter objects to use when searching for quantum tasks. */
    filters: SearchQuantumTasksFilter[];
    /** Maximum number of results to return in the response. */
    maxResults?: number;
    /** A token used for pagination of results returned in the response. Use the token returned from the previous request to continue search where the previous request ended. */
    nextToken?: string;
}
export interface SearchSpendingLimitsInput {
    /** The filters to apply when searching for spending limits. Use filters to narrow down the results based on specific criteria. */
    filters?: SearchSpendingLimitsFilter[];
    /** The maximum number of results to return in a single call. Minimum value of 1, maximum value of 100. Default is 20. */
    maxResults?: number;
    /** The token to retrieve the next page of results. This value is returned from a previous call to SearchSpendingLimits when there are more results available. */
    nextToken?: string;
}
export interface TagResourceInput {
    /** Specify the resourceArn of the resource to which a tag will be added. */
    resourceArn: string;
    /** Specify the tags to add to the resource. Tags can be specified as a key-value map. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** Specify the resourceArn for the resource from which to remove the tags. */
    resourceArn: string;
    /** Specify the keys for the tags to remove from the resource. */
    tagKeys: string[];
}
export interface UpdateSpendingLimitInput {
    /** A unique, case-sensitive identifier to ensure that the operation completes no more than one time. If this token matches a previous request, Amazon Braket ignores the request, but does not return an er */
    clientToken: string;
    /** The Amazon Resource Name (ARN) of the spending limit to update. */
    spendingLimitArn: string;
    /** The new maximum amount that can be spent on the specified device, in USD. */
    spendingLimit?: string;
    /** The new time period during which the spending limit is active, including start and end dates. */
    timePeriod?: TimePeriod;
}
/** Braket service binding for Step Functions SDK integrations. */
export declare class Braket {
    constructor();
    cancelJob<T>(params: CancelJobInput): Promise<T>;
    cancelQuantumTask<T>(params: CancelQuantumTaskInput): Promise<T>;
    createJob<T>(params: CreateJobInput): Promise<T>;
    createQuantumTask<T>(params: CreateQuantumTaskInput): Promise<T>;
    createSpendingLimit<T>(params: CreateSpendingLimitInput): Promise<T>;
    deleteSpendingLimit<T>(params: DeleteSpendingLimitInput): Promise<T>;
    getDevice<T>(params: GetDeviceInput): Promise<T>;
    getJob<T>(params: GetJobInput): Promise<T>;
    getQuantumTask<T>(params: GetQuantumTaskInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    searchDevices<T>(params: SearchDevicesInput): Promise<T>;
    searchJobs<T>(params: SearchJobsInput): Promise<T>;
    searchQuantumTasks<T>(params: SearchQuantumTasksInput): Promise<T>;
    searchSpendingLimits<T>(params: SearchSpendingLimitsInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateSpendingLimit<T>(params: UpdateSpendingLimitInput): Promise<T>;
}
//# sourceMappingURL=Braket.d.ts.map