export interface DimensionValues {
    /** The names of the metadata types that you can use to filter and group your results. */
    key: 'LINKED_ACCOUNT';
    /** The metadata values that you can use to filter and group your results. */
    values: any[];
}
export interface TagValues {
    /** The key for the tag. */
    key: string;
    /** The specific value of the tag. */
    values: any[];
}
export interface CostCategoryValues {
    /** The unique name of the Cost Category. */
    key: string;
    /** The specific value of the Cost Category. */
    values: any[];
}
export interface TimeRange {
    /** The inclusive start date of the time range. */
    beginDateInclusive?: string;
    /** The inclusive end date of the time range. */
    endDateInclusive?: string;
}
export interface Expression {
    /** The specific Dimension to use for Expression. */
    dimensions?: DimensionValues;
    /** The specific Tag to use for Expression. */
    tags?: TagValues;
    /** The filter that's based on CostCategory values. */
    costCategories?: CostCategoryValues;
    /** Specifies a time range filter for the billing view data. */
    timeRange?: TimeRange;
}
export interface ResourceTag {
    /** The key that's associated with the tag. */
    key: string;
    /** The value that's associated with the tag. */
    value?: string;
}
export interface ActiveTimeRange {
    /** The inclusive time range start date. */
    activeAfterInclusive: string;
    /** The inclusive time range end date. */
    activeBeforeInclusive: string;
}
export interface StringSearch {
    /** The type of search operation to perform on the string value. Determines how the search value is matched against the target field. */
    searchOption: 'STARTS_WITH';
    /** The string value to use in the search operation. This value is compared against the target field using the specified search option. */
    searchValue: string;
}
export interface AssociateSourceViewsInput {
    /** The Amazon Resource Name (ARN) of the billing view to associate source views with. */
    arn: string;
    /** A list of ARNs of the source billing views to associate. */
    sourceViews: string[];
}
export interface CreateBillingViewInput {
    /** The name of the billing view. */
    name: string;
    /** A list of billing views used as the data source for the custom billing view. */
    sourceViews: string[];
    /** A unique, case-sensitive identifier you specify to ensure idempotency of the request. Idempotency ensures that an API request completes no more than one time. If the original request completes success */
    clientToken?: string;
    /** See Expression. Billing view only supports LINKED_ACCOUNT, Tags, and CostCategories. */
    dataFilterExpression?: Expression;
    /** The description of the billing view. */
    description?: string;
    /** A list of key value map specifying tags associated to the billing view being created. */
    resourceTags?: ResourceTag[];
}
export interface DeleteBillingViewInput {
    /** The Amazon Resource Name (ARN) that can be used to uniquely identify the billing view. */
    arn: string;
    /** If set to true, forces deletion of the billing view even if it has derived resources (e.g. other billing views or budgets). Use with caution as this may break dependent resources. */
    force?: boolean;
}
export interface DisassociateSourceViewsInput {
    /** The Amazon Resource Name (ARN) of the billing view to disassociate source views from. */
    arn: string;
    /** A list of ARNs of the source billing views to disassociate. */
    sourceViews: string[];
}
export interface GetBillingViewInput {
    /** The Amazon Resource Name (ARN) that can be used to uniquely identify the billing view. */
    arn: string;
}
export interface GetResourcePolicyInput {
    /** The Amazon Resource Name (ARN) of the billing view resource to which the policy is attached to. */
    resourceArn: string;
}
export interface ListBillingViewsInput {
    /** The time range for the billing views listed. PRIMARY billing view is always listed. BILLING_GROUP billing views are listed for time ranges when the associated billing group resource in Billing Conduct */
    activeTimeRange?: ActiveTimeRange;
    /** The Amazon Resource Name (ARN) that can be used to uniquely identify the billing view. */
    arns?: string[];
    /** The type of billing view. */
    billingViewTypes?: 'PRIMARY' | 'BILLING_GROUP' | 'CUSTOM' | 'BILLING_TRANSFER' | 'BILLING_TRANSFER_SHOWBACK'[];
    /** The maximum number of billing views to retrieve. Default is 100. */
    maxResults?: number;
    /** Filters the list of billing views by name. You can specify search criteria to match billing view names based on the search option provided. */
    names?: StringSearch[];
    /** The pagination token that is used on subsequent calls to list billing views. */
    nextToken?: string;
    /** The list of owners of the billing view. */
    ownerAccountId?: string;
    /** Filters the results to include only billing views that use the specified account as a source. */
    sourceAccountId?: string;
}
export interface ListSourceViewsForBillingViewInput {
    /** The Amazon Resource Name (ARN) that can be used to uniquely identify the billing view. */
    arn: string;
    /** The number of entries a paginated response contains. */
    maxResults?: number;
    /** The pagination token that is used on subsequent calls to list billing views. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
    /** A list of tag key value pairs that are associated with the resource. */
    resourceTags: ResourceTag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
    /** A list of tag key value pairs that are associated with the resource. */
    resourceTagKeys: string[];
}
export interface UpdateBillingViewInput {
    /** The Amazon Resource Name (ARN) that can be used to uniquely identify the billing view. */
    arn: string;
    /** See Expression. Billing view only supports LINKED_ACCOUNT, Tags, and CostCategories. */
    dataFilterExpression?: Expression;
    /** The description of the billing view. */
    description?: string;
    /** The name of the billing view. */
    name?: string;
}
/** Billing service binding for Step Functions SDK integrations. */
export declare class Billing {
    constructor();
    associateSourceViews<T>(params: AssociateSourceViewsInput): Promise<T>;
    createBillingView<T>(params: CreateBillingViewInput): Promise<T>;
    deleteBillingView<T>(params: DeleteBillingViewInput): Promise<T>;
    disassociateSourceViews<T>(params: DisassociateSourceViewsInput): Promise<T>;
    getBillingView<T>(params: GetBillingViewInput): Promise<T>;
    getResourcePolicy<T>(params: GetResourcePolicyInput): Promise<T>;
    listBillingViews<T>(params: ListBillingViewsInput): Promise<T>;
    listSourceViewsForBillingView<T>(params: ListSourceViewsForBillingViewInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateBillingView<T>(params: UpdateBillingViewInput): Promise<T>;
}
//# sourceMappingURL=Billing.d.ts.map