export interface BatchCreateBillScenarioCommitmentModificationEntry {
    /** A unique identifier for this entry in the batch operation. This can be any valid string. This key is useful to identify errors associated with any commitment entry as any error is returned with this k */
    key: string;
    /** An optional group identifier for the commitment modification. */
    group?: string;
    /** The Amazon Web Services account ID to which this commitment will be applied to. */
    usageAccountId: string;
    /** The specific commitment action to be taken (e.g., adding a Reserved Instance or Savings Plan). */
    commitmentAction: any;
}
export interface BatchCreateBillScenarioUsageModificationEntry {
    /** The Amazon Web Services service code for this usage modification. This identifies the specific Amazon Web Services service to the customer as a unique short abbreviation. For example, AmazonEC2 and AW */
    serviceCode: string;
    /** Describes the usage details of the usage line item. */
    usageType: string;
    /** The specific operation associated with this usage modification. Describes the specific Amazon Web Services operation that this usage line models. For example, RunInstances indicates the operation of a */
    operation: string;
    /** The Availability Zone that this usage line uses. */
    availabilityZone?: string;
    /** A unique identifier for this entry in the batch operation. This can be any valid string. This key is useful to identify errors associated with any usage entry as any error is returned with this key. */
    key: string;
    /** An optional group identifier for the usage modification. */
    group?: string;
    /** The Amazon Web Services account ID to which this usage will be applied to. */
    usageAccountId: string;
    /** The amount of usage you want to create for the service use you are modeling. */
    amounts?: any[];
    /** Historical usage data associated with this modification, if available. */
    historicalUsage?: any;
}
export interface BatchCreateWorkloadEstimateUsageEntry {
    /** The Amazon Web Services service code for this usage estimate. */
    serviceCode: string;
    /** The type of usage being estimated. */
    usageType: string;
    /** The specific operation associated with this usage estimate. */
    operation: string;
    /** A unique identifier for this entry in the batch operation. */
    key: string;
    /** An optional group identifier for the usage estimate. */
    group?: string;
    /** The Amazon Web Services account ID associated with this usage estimate. */
    usageAccountId: string;
    /** The estimated usage amount. */
    amount: number;
    /** Historical usage data associated with this estimate, if available. */
    historicalUsage?: any;
}
export interface BatchUpdateBillScenarioCommitmentModificationEntry {
    /** The unique identifier of the commitment modification to update. */
    id: string;
    /** The updated group identifier for the commitment modification. */
    group?: string;
}
export interface BatchUpdateBillScenarioUsageModificationEntry {
    /** The unique identifier of the usage modification to update. */
    id: string;
    /** The updated group identifier for the usage modification. */
    group?: string;
    /** The updated usage amounts for the modification. */
    amounts?: any[];
}
export interface BatchUpdateWorkloadEstimateUsageEntry {
    /** The unique identifier of the usage estimate to update. */
    id: string;
    /** The updated group identifier for the usage estimate. */
    group?: string;
    /** The updated estimated usage amount. */
    amount?: number;
}
export interface ListUsageFilter {
    /** The name of the filter attribute. */
    name: 'USAGE_ACCOUNT_ID' | 'SERVICE_CODE' | 'USAGE_TYPE' | 'OPERATION' | 'LOCATION' | 'USAGE_GROUP' | 'HISTORICAL_USAGE_ACCOUNT_ID' | 'HISTORICAL_SERVICE_CODE' | 'HISTORICAL_USAGE_TYPE' | 'HISTORICAL_OPERATION' | 'HISTORICAL_LOCATION';
    /** The values to filter by. */
    values: any[];
    /** The match option for the filter (e.g., equals, contains). */
    matchOption?: 'EQUALS' | 'STARTS_WITH' | 'CONTAINS';
}
export interface ListBillEstimateLineItemsFilter {
    /** The name of the filter attribute. */
    name: 'USAGE_ACCOUNT_ID' | 'SERVICE_CODE' | 'USAGE_TYPE' | 'OPERATION' | 'LOCATION' | 'LINE_ITEM_TYPE';
    /** The values to filter by. */
    values: any[];
    /** The match option for the filter (e.g., equals, contains). */
    matchOption?: 'EQUALS' | 'STARTS_WITH' | 'CONTAINS';
}
export interface ListBillEstimatesFilter {
    /** The name of the filter attribute. */
    name: 'STATUS' | 'NAME';
    /** The values to filter by. */
    values: any[];
    /** The match option for the filter (e.g., equals, contains). */
    matchOption?: 'EQUALS' | 'STARTS_WITH' | 'CONTAINS';
}
export interface FilterTimestamp {
    /** Include results after this timestamp. */
    afterTimestamp?: string;
    /** Include results before this timestamp. */
    beforeTimestamp?: string;
}
export interface ListBillScenariosFilter {
    /** The name of the filter attribute. */
    name: 'STATUS' | 'NAME' | 'GROUP_SHARING_PREFERENCE' | 'COST_CATEGORY_ARN';
    /** The values to filter by. */
    values: any[];
    /** The match option for the filter (e.g., equals, contains). */
    matchOption?: 'EQUALS' | 'STARTS_WITH' | 'CONTAINS';
}
export interface ListWorkloadEstimatesFilter {
    /** The name of the filter attribute. */
    name: 'STATUS' | 'NAME';
    /** The values to filter by. */
    values: any[];
    /** The match option for the filter (e.g., equals, contains). */
    matchOption?: 'EQUALS' | 'STARTS_WITH' | 'CONTAINS';
}
export interface BatchCreateBillScenarioCommitmentModificationInput {
    /** The ID of the Bill Scenario for which you want to create the modeled commitment. */
    billScenarioId: string;
    /** List of commitments that you want to model in the Bill Scenario. */
    commitmentModifications: BatchCreateBillScenarioCommitmentModificationEntry[];
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. */
    clientToken?: string;
}
export interface BatchCreateBillScenarioUsageModificationInput {
    /** The ID of the Bill Scenario for which you want to create the modeled usage. */
    billScenarioId: string;
    /** List of usage that you want to model in the Bill Scenario. */
    usageModifications: BatchCreateBillScenarioUsageModificationEntry[];
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. */
    clientToken?: string;
}
export interface BatchCreateWorkloadEstimateUsageInput {
    /** List of usage that you want to model in the Workload estimate. */
    usage: BatchCreateWorkloadEstimateUsageEntry[];
    /** The ID of the Workload estimate for which you want to create the modeled usage. */
    workloadEstimateId: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. */
    clientToken?: string;
}
export interface BatchDeleteBillScenarioCommitmentModificationInput {
    /** The ID of the Bill Scenario for which you want to delete the modeled commitment. */
    billScenarioId: string;
    /** List of commitments that you want to delete from the Bill Scenario. */
    ids: string[];
}
export interface BatchDeleteBillScenarioUsageModificationInput {
    /** The ID of the Bill Scenario for which you want to delete the modeled usage. */
    billScenarioId: string;
    /** List of usage that you want to delete from the Bill Scenario. */
    ids: string[];
}
export interface BatchDeleteWorkloadEstimateUsageInput {
    /** List of usage that you want to delete from the Workload estimate. */
    ids: string[];
    /** The ID of the Workload estimate for which you want to delete the modeled usage. */
    workloadEstimateId: string;
}
export interface BatchUpdateBillScenarioCommitmentModificationInput {
    /** The ID of the Bill Scenario for which you want to modify the commitment group of a modeled commitment. */
    billScenarioId: string;
    /** List of commitments that you want to update in a Bill Scenario. */
    commitmentModifications: BatchUpdateBillScenarioCommitmentModificationEntry[];
}
export interface BatchUpdateBillScenarioUsageModificationInput {
    /** The ID of the Bill Scenario for which you want to modify the usage lines. */
    billScenarioId: string;
    /** List of usage lines that you want to update in a Bill Scenario identified by the usage ID. */
    usageModifications: BatchUpdateBillScenarioUsageModificationEntry[];
}
export interface BatchUpdateWorkloadEstimateUsageInput {
    /** List of usage line amounts and usage group that you want to update in a Workload estimate identified by the usage ID. */
    usage: BatchUpdateWorkloadEstimateUsageEntry[];
    /** The ID of the Workload estimate for which you want to modify the usage lines. */
    workloadEstimateId: string;
}
export interface CreateBillEstimateInput {
    /** The ID of the Bill Scenario for which you want to create a Bill estimate. */
    billScenarioId: string;
    /** The name of the Bill estimate that will be created. Names must be unique for an account. */
    name: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. */
    clientToken?: string;
    /** An optional list of tags to associate with the specified BillEstimate. You can use resource tags to control access to your BillEstimate using IAM policies. Each tag consists of a key and a value, and  */
    tags?: Record<string, string>;
}
export interface CreateBillScenarioInput {
    /** A descriptive name for the bill scenario. */
    name: string;
    /** A unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** The arn of the cost category used in the reserved and prioritized group sharing. */
    costCategoryGroupSharingPreferenceArn?: string;
    /** The setting for the reserved instance and savings plan group sharing used in this estimate. */
    groupSharingPreference?: 'OPEN' | 'PRIORITIZED' | 'RESTRICTED';
    /** The tags to apply to the bill scenario. */
    tags?: Record<string, string>;
}
export interface CreateWorkloadEstimateInput {
    /** A descriptive name for the workload estimate. */
    name: string;
    /** A unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** The type of pricing rates to use for the estimate. */
    rateType?: 'BEFORE_DISCOUNTS' | 'AFTER_DISCOUNTS' | 'AFTER_DISCOUNTS_AND_COMMITMENTS';
    /** The tags to apply to the workload estimate. */
    tags?: Record<string, string>;
}
export interface DeleteBillEstimateInput {
    /** The unique identifier of the bill estimate to delete. */
    identifier: string;
}
export interface DeleteBillScenarioInput {
    /** The unique identifier of the bill scenario to delete. */
    identifier: string;
}
export interface DeleteWorkloadEstimateInput {
    /** The unique identifier of the workload estimate to delete. */
    identifier: string;
}
export interface GetBillEstimateInput {
    /** The unique identifier of the bill estimate to retrieve. */
    identifier: string;
}
export interface GetBillScenarioInput {
    /** The unique identifier of the bill scenario to retrieve. */
    identifier: string;
}
export interface GetWorkloadEstimateInput {
    /** The unique identifier of the workload estimate to retrieve. */
    identifier: string;
}
export interface ListBillEstimateCommitmentsInput {
    /** The unique identifier of the bill estimate to list commitments for. */
    billEstimateId: string;
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** A token to retrieve the next page of results. */
    nextToken?: string;
}
export interface ListBillEstimateInputCommitmentModificationsInput {
    /** The unique identifier of the bill estimate to list input commitment modifications for. */
    billEstimateId: string;
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** A token to retrieve the next page of results. */
    nextToken?: string;
}
export interface ListBillEstimateInputUsageModificationsInput {
    /** The unique identifier of the bill estimate to list input usage modifications for. */
    billEstimateId: string;
    /** Filters to apply to the list of input usage modifications. */
    filters?: ListUsageFilter[];
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** A token to retrieve the next page of results. */
    nextToken?: string;
}
export interface ListBillEstimateLineItemsInput {
    /** The unique identifier of the bill estimate to list line items for. */
    billEstimateId: string;
    /** Filters to apply to the list of line items. */
    filters?: ListBillEstimateLineItemsFilter[];
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** A token to retrieve the next page of results. */
    nextToken?: string;
}
export interface ListBillEstimatesInput {
    /** Filter bill estimates based on the creation date. */
    createdAtFilter?: FilterTimestamp;
    /** Filter bill estimates based on the expiration date. */
    expiresAtFilter?: FilterTimestamp;
    /** Filters to apply to the list of bill estimates. */
    filters?: ListBillEstimatesFilter[];
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** A token to retrieve the next page of results. */
    nextToken?: string;
}
export interface ListBillScenarioCommitmentModificationsInput {
    /** The unique identifier of the bill scenario to list commitment modifications for. */
    billScenarioId: string;
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** A token to retrieve the next page of results. */
    nextToken?: string;
}
export interface ListBillScenariosInput {
    /** Filter bill scenarios based on the creation date. */
    createdAtFilter?: FilterTimestamp;
    /** Filter bill scenarios based on the expiration date. */
    expiresAtFilter?: FilterTimestamp;
    /** Filters to apply to the list of bill scenarios. */
    filters?: ListBillScenariosFilter[];
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** A token to retrieve the next page of results. */
    nextToken?: string;
}
export interface ListBillScenarioUsageModificationsInput {
    /** The unique identifier of the bill scenario to list usage modifications for. */
    billScenarioId: string;
    /** Filters to apply to the list of usage modifications. */
    filters?: ListUsageFilter[];
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** A token to retrieve the next page of results. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to list tags for. */
    arn: string;
}
export interface ListWorkloadEstimatesInput {
    /** Filter workload estimates based on the creation date. */
    createdAtFilter?: FilterTimestamp;
    /** Filter workload estimates based on the expiration date. */
    expiresAtFilter?: FilterTimestamp;
    /** Filters to apply to the list of workload estimates. */
    filters?: ListWorkloadEstimatesFilter[];
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** A token to retrieve the next page of results. */
    nextToken?: string;
}
export interface ListWorkloadEstimateUsageInput {
    /** The unique identifier of the workload estimate to list usage for. */
    workloadEstimateId: string;
    /** Filters to apply to the list of usage items. */
    filters?: ListUsageFilter[];
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** A token to retrieve the next page of results. */
    nextToken?: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to add tags to. */
    arn: string;
    /** The tags to add to the resource. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to remove tags from. */
    arn: string;
    /** The keys of the tags to remove from the resource. */
    tagKeys: string[];
}
export interface UpdateBillEstimateInput {
    /** The unique identifier of the bill estimate to update. */
    identifier: string;
    /** The new expiration date for the bill estimate. */
    expiresAt?: string;
    /** The new name for the bill estimate. */
    name?: string;
}
export interface UpdateBillScenarioInput {
    /** The unique identifier of the bill scenario to update. */
    identifier: string;
    /** The arn of the cost category used in the reserved and prioritized group sharing. */
    costCategoryGroupSharingPreferenceArn?: string;
    /** The new expiration date for the bill scenario. */
    expiresAt?: string;
    /** The setting for the reserved instance and savings plan group sharing used in this estimate. */
    groupSharingPreference?: 'OPEN' | 'PRIORITIZED' | 'RESTRICTED';
    /** The new name for the bill scenario. */
    name?: string;
}
export interface UpdatePreferencesInput {
    /** The updated preferred rate types for the management account. */
    managementAccountRateTypeSelections?: 'BEFORE_DISCOUNTS' | 'AFTER_DISCOUNTS' | 'AFTER_DISCOUNTS_AND_COMMITMENTS'[];
    /** The updated preferred rate types for member accounts. */
    memberAccountRateTypeSelections?: 'BEFORE_DISCOUNTS' | 'AFTER_DISCOUNTS' | 'AFTER_DISCOUNTS_AND_COMMITMENTS'[];
    /** The updated preferred rate types for a standalone account. */
    standaloneAccountRateTypeSelections?: 'BEFORE_DISCOUNTS' | 'AFTER_DISCOUNTS' | 'AFTER_DISCOUNTS_AND_COMMITMENTS'[];
}
export interface UpdateWorkloadEstimateInput {
    /** The unique identifier of the workload estimate to update. */
    identifier: string;
    /** The new expiration date for the workload estimate. */
    expiresAt?: string;
    /** The new name for the workload estimate. */
    name?: string;
}
/** BCM Pricing Calculator service binding for Step Functions SDK integrations. */
export declare class BCMPricingCalculator {
    constructor();
    batchCreateBillScenarioCommitmentModification<T>(params: BatchCreateBillScenarioCommitmentModificationInput): Promise<T>;
    batchCreateBillScenarioUsageModification<T>(params: BatchCreateBillScenarioUsageModificationInput): Promise<T>;
    batchCreateWorkloadEstimateUsage<T>(params: BatchCreateWorkloadEstimateUsageInput): Promise<T>;
    batchDeleteBillScenarioCommitmentModification<T>(params: BatchDeleteBillScenarioCommitmentModificationInput): Promise<T>;
    batchDeleteBillScenarioUsageModification<T>(params: BatchDeleteBillScenarioUsageModificationInput): Promise<T>;
    batchDeleteWorkloadEstimateUsage<T>(params: BatchDeleteWorkloadEstimateUsageInput): Promise<T>;
    batchUpdateBillScenarioCommitmentModification<T>(params: BatchUpdateBillScenarioCommitmentModificationInput): Promise<T>;
    batchUpdateBillScenarioUsageModification<T>(params: BatchUpdateBillScenarioUsageModificationInput): Promise<T>;
    batchUpdateWorkloadEstimateUsage<T>(params: BatchUpdateWorkloadEstimateUsageInput): Promise<T>;
    createBillEstimate<T>(params: CreateBillEstimateInput): Promise<T>;
    createBillScenario<T>(params: CreateBillScenarioInput): Promise<T>;
    createWorkloadEstimate<T>(params: CreateWorkloadEstimateInput): Promise<T>;
    deleteBillEstimate<T>(params: DeleteBillEstimateInput): Promise<T>;
    deleteBillScenario<T>(params: DeleteBillScenarioInput): Promise<T>;
    deleteWorkloadEstimate<T>(params: DeleteWorkloadEstimateInput): Promise<T>;
    getBillEstimate<T>(params: GetBillEstimateInput): Promise<T>;
    getBillScenario<T>(params: GetBillScenarioInput): Promise<T>;
    getPreferences<T>(params: Record<string, any>): Promise<T>;
    getWorkloadEstimate<T>(params: GetWorkloadEstimateInput): Promise<T>;
    listBillEstimateCommitments<T>(params: ListBillEstimateCommitmentsInput): Promise<T>;
    listBillEstimateInputCommitmentModifications<T>(params: ListBillEstimateInputCommitmentModificationsInput): Promise<T>;
    listBillEstimateInputUsageModifications<T>(params: ListBillEstimateInputUsageModificationsInput): Promise<T>;
    listBillEstimateLineItems<T>(params: ListBillEstimateLineItemsInput): Promise<T>;
    listBillEstimates<T>(params: ListBillEstimatesInput): Promise<T>;
    listBillScenarioCommitmentModifications<T>(params: ListBillScenarioCommitmentModificationsInput): Promise<T>;
    listBillScenarios<T>(params: ListBillScenariosInput): Promise<T>;
    listBillScenarioUsageModifications<T>(params: ListBillScenarioUsageModificationsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listWorkloadEstimates<T>(params: ListWorkloadEstimatesInput): Promise<T>;
    listWorkloadEstimateUsage<T>(params: ListWorkloadEstimateUsageInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateBillEstimate<T>(params: UpdateBillEstimateInput): Promise<T>;
    updateBillScenario<T>(params: UpdateBillScenarioInput): Promise<T>;
    updatePreferences<T>(params: UpdatePreferencesInput): Promise<T>;
    updateWorkloadEstimate<T>(params: UpdateWorkloadEstimateInput): Promise<T>;
}
//# sourceMappingURL=BCMPricingCalculator.d.ts.map