import * as cdk from "../../core/lib";
import * as constructs from "constructs";
import * as cfn_parse from "../../core/lib/helpers-internal";
import { ISpendingLimitRef, SpendingLimitReference } from "../../interfaces/generated/aws-braket-interfaces.generated";
/**
 * Creates a spending limit for a specified quantum device.
 *
 * Spending limits help you control costs by setting maximum amounts that can be spent on quantum computing tasks within a specified time period.
 *
 * @cloudformationResource AWS::Braket::SpendingLimit
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-braket-spendinglimit.html
 */
export declare class CfnSpendingLimit extends cdk.CfnResource implements cdk.IInspectable, ISpendingLimitRef, cdk.ITaggableV2 {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnSpendingLimit from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnSpendingLimit;
    /**
     * Checks whether the given object is a CfnSpendingLimit
     */
    static isCfnSpendingLimit(x: any): x is CfnSpendingLimit;
    static arnForSpendingLimit(resource: ISpendingLimitRef): string;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly cdkTagManager: cdk.TagManager;
    /**
     * The Amazon Resource Name (ARN) of the quantum device to apply the spending limit to.
     */
    private _deviceArn;
    /**
     * The maximum amount that can be spent on the specified device, in USD.
     */
    private _spendingLimit;
    /**
     * The tags to apply to the spending limit.
     */
    private _tags?;
    /**
     * Defines a time range for spending limits, specifying when the limit is active.
     */
    private _timePeriod?;
    /**
     * Create a new `AWS::Braket::SpendingLimit`.
     *
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props: CfnSpendingLimitProps);
    get spendingLimitRef(): SpendingLimitReference;
    /**
     * The Amazon Resource Name (ARN) of the quantum device to apply the spending limit to.
     */
    get deviceArn(): string;
    /**
     * The Amazon Resource Name (ARN) of the quantum device to apply the spending limit to.
     */
    set deviceArn(value: string);
    /**
     * The maximum amount that can be spent on the specified device, in USD.
     */
    get spendingLimit(): string;
    /**
     * The maximum amount that can be spent on the specified device, in USD.
     */
    set spendingLimit(value: string);
    /**
     * The tags to apply to the spending limit.
     */
    get tags(): Array<cdk.CfnTag> | undefined;
    /**
     * The tags to apply to the spending limit.
     */
    set tags(value: Array<cdk.CfnTag> | undefined);
    /**
     * Defines a time range for spending limits, specifying when the limit is active.
     */
    get timePeriod(): cdk.IResolvable | CfnSpendingLimit.TimePeriodProperty | undefined;
    /**
     * Defines a time range for spending limits, specifying when the limit is active.
     */
    set timePeriod(value: cdk.IResolvable | CfnSpendingLimit.TimePeriodProperty | undefined);
    /**
     * The date and time when the spending limit was created, in ISO 8601 format.
     *
     * @cloudformationAttribute CreatedAt
     */
    get attrCreatedAt(): string;
    /**
     * The amount currently queued for spending on the device, in USD.
     *
     * @cloudformationAttribute QueuedSpend
     */
    get attrQueuedSpend(): string;
    /**
     * The Amazon Resource Name (ARN) that uniquely identifies the spending limit.
     *
     * @cloudformationAttribute SpendingLimitArn
     */
    get attrSpendingLimitArn(): string;
    /**
     * The total amount spent on the device so far during the current time period, in USD.
     *
     * @cloudformationAttribute TotalSpend
     */
    get attrTotalSpend(): string;
    /**
     * The date and time when the spending limit was last modified, in ISO 8601 format.
     *
     * @cloudformationAttribute UpdatedAt
     */
    get attrUpdatedAt(): string;
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnSpendingLimit {
    /**
     * Defines a time range for spending limits, specifying when the limit is active.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-braket-spendinglimit-timeperiod.html
     */
    interface TimePeriodProperty {
        /**
         * The end date and time for the spending limit period, in ISO 8601 format.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-braket-spendinglimit-timeperiod.html#cfn-braket-spendinglimit-timeperiod-endat
         */
        readonly endAt: string;
        /**
         * The start date and time for the spending limit period, in ISO 8601 format.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-braket-spendinglimit-timeperiod.html#cfn-braket-spendinglimit-timeperiod-startat
         */
        readonly startAt: string;
    }
}
/**
 * Properties for defining a `CfnSpendingLimit`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-braket-spendinglimit.html
 */
export interface CfnSpendingLimitProps {
    /**
     * The Amazon Resource Name (ARN) of the quantum device to apply the spending limit to.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-braket-spendinglimit.html#cfn-braket-spendinglimit-devicearn
     */
    readonly deviceArn: string;
    /**
     * The maximum amount that can be spent on the specified device, in USD.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-braket-spendinglimit.html#cfn-braket-spendinglimit-spendinglimit
     */
    readonly spendingLimit: string;
    /**
     * The tags to apply to the spending limit.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-braket-spendinglimit.html#cfn-braket-spendinglimit-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
    /**
     * Defines a time range for spending limits, specifying when the limit is active.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-braket-spendinglimit.html#cfn-braket-spendinglimit-timeperiod
     */
    readonly timePeriod?: cdk.IResolvable | CfnSpendingLimit.TimePeriodProperty;
}
export type { ISpendingLimitRef, SpendingLimitReference };
