export interface SavingsPlanRateFilter {
    /** The filter name. */
    name?: 'region' | 'instanceType' | 'productDescription' | 'tenancy' | 'productType' | 'serviceCode' | 'usageType' | 'operation';
    /** The filter values. */
    values?: any[];
}
export interface SavingsPlanFilter {
    /** The filter name. */
    name?: 'region' | 'ec2-instance-family' | 'commitment' | 'upfront' | 'term' | 'savings-plan-type' | 'payment-option' | 'start' | 'end' | 'instance-family';
    /** The filter value. */
    values?: any[];
}
export interface SavingsPlanOfferingRateFilterElement {
    /** The filter name. */
    name?: 'region' | 'instanceFamily' | 'instanceType' | 'productDescription' | 'tenancy' | 'productId';
    /** The filter values. */
    values?: any[];
}
export interface SavingsPlanOfferingFilterElement {
    /** The filter name. */
    name?: 'region' | 'instanceFamily';
    /** The filter values. */
    values?: any[];
}
export interface CreateSavingsPlanInput {
    /** The hourly commitment, in the same currency of the savingsPlanOfferingId. This is a value between 0.001 and 1 million. You cannot specify more than five digits after the decimal point. */
    commitment: string;
    /** The ID of the offering. */
    savingsPlanOfferingId: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. */
    clientToken?: string;
    /** The purchase time of the Savings Plan in UTC format (YYYY-MM-DDTHH:MM:SSZ). */
    purchaseTime?: string;
    /** One or more tags. */
    tags?: Record<string, string>;
    /** The up-front payment amount. This is a whole number between 50 and 99 percent of the total value of the Savings Plan. This parameter is only supported if the payment option is Partial Upfront. */
    upfrontPaymentAmount?: string;
}
export interface DeleteQueuedSavingsPlanInput {
    /** The ID of the Savings Plan. */
    savingsPlanId: string;
}
export interface DescribeSavingsPlanRatesInput {
    /** The ID of the Savings Plan. */
    savingsPlanId: string;
    /** The filters. */
    filters?: SavingsPlanRateFilter[];
    /** The maximum number of results to return with a single call. To retrieve additional results, make another call with the returned token value. */
    maxResults?: number;
    /** The token for the next page of results. */
    nextToken?: string;
}
export interface DescribeSavingsPlansInput {
    /** The filters. */
    filters?: SavingsPlanFilter[];
    /** The maximum number of results to return with a single call. To retrieve additional results, make another call with the returned token value. */
    maxResults?: number;
    /** The token for the next page of results. */
    nextToken?: string;
    /** The Amazon Resource Names (ARN) of the Savings Plans. */
    savingsPlanArns?: string[];
    /** The IDs of the Savings Plans. */
    savingsPlanIds?: string[];
    /** The current states of the Savings Plans. */
    states?: 'payment-pending' | 'payment-failed' | 'active' | 'retired' | 'queued' | 'queued-deleted' | 'pending-return' | 'returned'[];
}
export interface DescribeSavingsPlansOfferingRatesInput {
    /** The filters. */
    filters?: SavingsPlanOfferingRateFilterElement[];
    /** The maximum number of results to return with a single call. To retrieve additional results, make another call with the returned token value. */
    maxResults?: number;
    /** The token for the next page of results. */
    nextToken?: string;
    /** The specific Amazon Web Services operation for the line item in the billing report. */
    operations?: string[];
    /** The Amazon Web Services products. */
    products?: 'EC2' | 'Fargate' | 'Lambda' | 'SageMaker' | 'RDS' | 'DSQL' | 'DynamoDB' | 'ElastiCache' | 'DocDB' | 'Neptune' | 'Timestream' | 'Keyspaces' | 'DMS'[];
    /** The IDs of the offerings. */
    savingsPlanOfferingIds?: string[];
    /** The payment options. */
    savingsPlanPaymentOptions?: 'All Upfront' | 'Partial Upfront' | 'No Upfront'[];
    /** The plan types. */
    savingsPlanTypes?: 'Compute' | 'EC2Instance' | 'SageMaker' | 'Database'[];
    /** The services. */
    serviceCodes?: 'AmazonEC2' | 'AmazonECS' | 'AmazonEKS' | 'AWSLambda' | 'AmazonSageMaker' | 'AmazonRDS' | 'AuroraDSQL' | 'AmazonDynamoDB' | 'AmazonElastiCache' | 'AmazonDocDB' | 'AmazonNeptune' | 'AmazonTimestream' | 'AmazonMCS' | 'AWSDatabaseMigrationSvc'[];
    /** The usage details of the line item in the billing report. */
    usageTypes?: string[];
}
export interface DescribeSavingsPlansOfferingsInput {
    /** The currencies. */
    currencies?: 'CNY' | 'USD' | 'EUR'[];
    /** The descriptions. */
    descriptions?: string[];
    /** The duration, in seconds. */
    durations?: number[];
    /** The filters. */
    filters?: SavingsPlanOfferingFilterElement[];
    /** The maximum number of results to return with a single call. To retrieve additional results, make another call with the returned token value. */
    maxResults?: number;
    /** The token for the next page of results. */
    nextToken?: string;
    /** The IDs of the offerings. */
    offeringIds?: string[];
    /** The specific Amazon Web Services operation for the line item in the billing report. */
    operations?: string[];
    /** The payment options. */
    paymentOptions?: 'All Upfront' | 'Partial Upfront' | 'No Upfront'[];
    /** The plan types. */
    planTypes?: 'Compute' | 'EC2Instance' | 'SageMaker' | 'Database'[];
    /** The product type. */
    productType?: 'EC2' | 'Fargate' | 'Lambda' | 'SageMaker' | 'RDS' | 'DSQL' | 'DynamoDB' | 'ElastiCache' | 'DocDB' | 'Neptune' | 'Timestream' | 'Keyspaces' | 'DMS';
    /** The services. */
    serviceCodes?: string[];
    /** The usage details of the line item in the billing report. */
    usageTypes?: string[];
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
}
export interface ReturnSavingsPlanInput {
    /** The ID of the Savings Plan. */
    savingsPlanId: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. */
    clientToken?: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
    /** One or more tags. For example, { "tags": {"key1":"value1", "key2":"value2"} }. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
    /** The tag keys. */
    tagKeys: string[];
}
/** savingsplans service binding for Step Functions SDK integrations. */
export declare class savingsplans {
    constructor();
    createSavingsPlan<T>(params: CreateSavingsPlanInput): Promise<T>;
    deleteQueuedSavingsPlan<T>(params: DeleteQueuedSavingsPlanInput): Promise<T>;
    describeSavingsPlanRates<T>(params: DescribeSavingsPlanRatesInput): Promise<T>;
    describeSavingsPlans<T>(params: DescribeSavingsPlansInput): Promise<T>;
    describeSavingsPlansOfferingRates<T>(params: DescribeSavingsPlansOfferingRatesInput): Promise<T>;
    describeSavingsPlansOfferings<T>(params: DescribeSavingsPlansOfferingsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    returnSavingsPlan<T>(params: ReturnSavingsPlanInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
}
//# sourceMappingURL=savingsplans.d.ts.map