import * as cdk from "../../core/lib";
import * as constructs from "constructs";
import * as cfn_parse from "../../core/lib/helpers-internal";
import { BillingGroupReference, CustomLineItemReference, IBillingGroupRef, ICustomLineItemRef, IPricingPlanRef, IPricingRuleRef, PricingPlanReference, PricingRuleReference } from "../../interfaces/generated/aws-billingconductor-interfaces.generated";
/**
 * Creates a billing group that resembles a consolidated billing family that AWS charges, based off of the predefined pricing plan computation.
 *
 * @cloudformationResource AWS::BillingConductor::BillingGroup
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html
 */
export declare class CfnBillingGroup extends cdk.CfnResource implements cdk.IInspectable, IBillingGroupRef, cdk.ITaggable {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnBillingGroup 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): CfnBillingGroup;
    /**
     * Checks whether the given object is a CfnBillingGroup
     */
    static isCfnBillingGroup(x: any): x is CfnBillingGroup;
    static arnForBillingGroup(resource: IBillingGroupRef): string;
    /**
     * The set of accounts that will be under the billing group.
     */
    private _accountGrouping;
    /**
     * The preferences and settings that will be used to compute the AWS charges for a billing group.
     */
    private _computationPreference;
    /**
     * The description of the billing group.
     */
    private _description?;
    /**
     * The billing group's name.
     */
    private _name;
    /**
     * The account ID that serves as the main account in a billing group.
     */
    private _primaryAccountId?;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly tags: cdk.TagManager;
    /**
     * A map that contains tag keys and tag values that are attached to a billing group.
     */
    private _tagsRaw?;
    /**
     * Create a new `AWS::BillingConductor::BillingGroup`.
     *
     * @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: CfnBillingGroupProps);
    get billingGroupRef(): BillingGroupReference;
    /**
     * The set of accounts that will be under the billing group.
     */
    get accountGrouping(): CfnBillingGroup.AccountGroupingProperty | cdk.IResolvable;
    /**
     * The set of accounts that will be under the billing group.
     */
    set accountGrouping(value: CfnBillingGroup.AccountGroupingProperty | cdk.IResolvable);
    /**
     * The preferences and settings that will be used to compute the AWS charges for a billing group.
     */
    get computationPreference(): CfnBillingGroup.ComputationPreferenceProperty | cdk.IResolvable;
    /**
     * The preferences and settings that will be used to compute the AWS charges for a billing group.
     */
    set computationPreference(value: CfnBillingGroup.ComputationPreferenceProperty | cdk.IResolvable);
    /**
     * The description of the billing group.
     */
    get description(): string | undefined;
    /**
     * The description of the billing group.
     */
    set description(value: string | undefined);
    /**
     * The billing group's name.
     */
    get name(): string;
    /**
     * The billing group's name.
     */
    set name(value: string);
    /**
     * The account ID that serves as the main account in a billing group.
     */
    get primaryAccountId(): string | undefined;
    /**
     * The account ID that serves as the main account in a billing group.
     */
    set primaryAccountId(value: string | undefined);
    /**
     * A map that contains tag keys and tag values that are attached to a billing group.
     */
    get tagsRaw(): Array<cdk.CfnTag> | undefined;
    /**
     * A map that contains tag keys and tag values that are attached to a billing group.
     */
    set tagsRaw(value: Array<cdk.CfnTag> | undefined);
    /**
     * The Amazon Resource Name (ARN) of the created billing group.
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    /**
     * The time the billing group was created.
     *
     * @cloudformationAttribute CreationTime
     */
    get attrCreationTime(): number;
    /**
     * The most recent time the billing group was modified.
     *
     * @cloudformationAttribute LastModifiedTime
     */
    get attrLastModifiedTime(): number;
    /**
     * The number of accounts in the particular billing group.
     *
     * @cloudformationAttribute Size
     */
    get attrSize(): number;
    /**
     * The billing group status. Only one of the valid values can be used.
     *
     * @cloudformationAttribute Status
     */
    get attrStatus(): string;
    /**
     * The reason why the billing group is in its current status.
     *
     * @cloudformationAttribute StatusReason
     */
    get attrStatusReason(): 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 CfnBillingGroup {
    /**
     * The preferences and settings that will be used to compute the AWS charges for a billing group.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-computationpreference.html
     */
    interface ComputationPreferenceProperty {
        /**
         * The Amazon Resource Name (ARN) of the pricing plan used to compute the AWS charges for a billing group.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-computationpreference.html#cfn-billingconductor-billinggroup-computationpreference-pricingplanarn
         */
        readonly pricingPlanArn: string;
    }
    /**
     * The set of accounts that will be under the billing group.
     *
     * The set of accounts resemble the linked accounts in a consolidated billing family.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-accountgrouping.html
     */
    interface AccountGroupingProperty {
        /**
         * Specifies if this billing group will automatically associate newly added AWS accounts that join your consolidated billing family.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-accountgrouping.html#cfn-billingconductor-billinggroup-accountgrouping-autoassociate
         */
        readonly autoAssociate?: boolean | cdk.IResolvable;
        /**
         * The account IDs that make up the billing group.
         *
         * Account IDs must be a part of the consolidated billing family, and not associated with another billing group.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-accountgrouping.html#cfn-billingconductor-billinggroup-accountgrouping-linkedaccountids
         */
        readonly linkedAccountIds?: Array<string>;
        /**
         * The Amazon Resource Name (ARN) that identifies the transfer relationship owned by the Bill Transfer account (caller account).
         *
         * When specified, the PrimaryAccountId is no longer required.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-accountgrouping.html#cfn-billingconductor-billinggroup-accountgrouping-responsibilitytransferarn
         */
        readonly responsibilityTransferArn?: string;
    }
}
/**
 * Properties for defining a `CfnBillingGroup`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html
 */
export interface CfnBillingGroupProps {
    /**
     * The set of accounts that will be under the billing group.
     *
     * The set of accounts resemble the linked accounts in a consolidated billing family.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html#cfn-billingconductor-billinggroup-accountgrouping
     */
    readonly accountGrouping: CfnBillingGroup.AccountGroupingProperty | cdk.IResolvable;
    /**
     * The preferences and settings that will be used to compute the AWS charges for a billing group.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html#cfn-billingconductor-billinggroup-computationpreference
     */
    readonly computationPreference: CfnBillingGroup.ComputationPreferenceProperty | cdk.IResolvable;
    /**
     * The description of the billing group.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html#cfn-billingconductor-billinggroup-description
     */
    readonly description?: string;
    /**
     * The billing group's name.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html#cfn-billingconductor-billinggroup-name
     */
    readonly name: string;
    /**
     * The account ID that serves as the main account in a billing group.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html#cfn-billingconductor-billinggroup-primaryaccountid
     */
    readonly primaryAccountId?: string;
    /**
     * A map that contains tag keys and tag values that are attached to a billing group.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-billinggroup.html#cfn-billingconductor-billinggroup-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
}
/**
 * Creates a custom line item that can be used to create a one-time or recurring, fixed or percentage-based charge that you can apply to a single billing group.
 *
 * You can apply custom line items to the current or previous billing period. You can create either a fee or a discount custom line item.
 *
 * @cloudformationResource AWS::BillingConductor::CustomLineItem
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html
 */
export declare class CfnCustomLineItem extends cdk.CfnResource implements cdk.IInspectable, ICustomLineItemRef, cdk.ITaggable {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnCustomLineItem 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): CfnCustomLineItem;
    /**
     * Checks whether the given object is a CfnCustomLineItem
     */
    static isCfnCustomLineItem(x: any): x is CfnCustomLineItem;
    static arnForCustomLineItem(resource: ICustomLineItemRef): string;
    /**
     * The AWS account in which this custom line item will be applied to.
     */
    private _accountId?;
    /**
     * The Amazon Resource Name (ARN) that references the billing group where the custom line item applies to.
     */
    private _billingGroupArn;
    /**
     * A time range for which the custom line item is effective.
     */
    private _billingPeriodRange?;
    /**
     * The computation rule that determines how the custom line item charges are computed and reflected in the bill.
     */
    private _computationRule?;
    /**
     * The charge details of a custom line item.
     */
    private _customLineItemChargeDetails?;
    /**
     * The custom line item's description.
     */
    private _description?;
    /**
     * The custom line item's name.
     */
    private _name;
    /**
     * Configuration details specifying how the custom line item charges are presented, including which service the charges are shown under.
     */
    private _presentationDetails?;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly tags: cdk.TagManager;
    /**
     * A map that contains tag keys and tag values that are attached to a custom line item.
     */
    private _tagsRaw?;
    /**
     * Create a new `AWS::BillingConductor::CustomLineItem`.
     *
     * @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: CfnCustomLineItemProps);
    get customLineItemRef(): CustomLineItemReference;
    /**
     * The AWS account in which this custom line item will be applied to.
     */
    get accountId(): string | undefined;
    /**
     * The AWS account in which this custom line item will be applied to.
     */
    set accountId(value: string | undefined);
    /**
     * The Amazon Resource Name (ARN) that references the billing group where the custom line item applies to.
     */
    get billingGroupArn(): string;
    /**
     * The Amazon Resource Name (ARN) that references the billing group where the custom line item applies to.
     */
    set billingGroupArn(value: string);
    /**
     * A time range for which the custom line item is effective.
     */
    get billingPeriodRange(): CfnCustomLineItem.BillingPeriodRangeProperty | cdk.IResolvable | undefined;
    /**
     * A time range for which the custom line item is effective.
     */
    set billingPeriodRange(value: CfnCustomLineItem.BillingPeriodRangeProperty | cdk.IResolvable | undefined);
    /**
     * The computation rule that determines how the custom line item charges are computed and reflected in the bill.
     */
    get computationRule(): string | undefined;
    /**
     * The computation rule that determines how the custom line item charges are computed and reflected in the bill.
     */
    set computationRule(value: string | undefined);
    /**
     * The charge details of a custom line item.
     */
    get customLineItemChargeDetails(): CfnCustomLineItem.CustomLineItemChargeDetailsProperty | cdk.IResolvable | undefined;
    /**
     * The charge details of a custom line item.
     */
    set customLineItemChargeDetails(value: CfnCustomLineItem.CustomLineItemChargeDetailsProperty | cdk.IResolvable | undefined);
    /**
     * The custom line item's description.
     */
    get description(): string | undefined;
    /**
     * The custom line item's description.
     */
    set description(value: string | undefined);
    /**
     * The custom line item's name.
     */
    get name(): string;
    /**
     * The custom line item's name.
     */
    set name(value: string);
    /**
     * Configuration details specifying how the custom line item charges are presented, including which service the charges are shown under.
     */
    get presentationDetails(): cdk.IResolvable | CfnCustomLineItem.PresentationDetailsProperty | undefined;
    /**
     * Configuration details specifying how the custom line item charges are presented, including which service the charges are shown under.
     */
    set presentationDetails(value: cdk.IResolvable | CfnCustomLineItem.PresentationDetailsProperty | undefined);
    /**
     * A map that contains tag keys and tag values that are attached to a custom line item.
     */
    get tagsRaw(): Array<cdk.CfnTag> | undefined;
    /**
     * A map that contains tag keys and tag values that are attached to a custom line item.
     */
    set tagsRaw(value: Array<cdk.CfnTag> | undefined);
    /**
     * The Amazon Resource Name (ARN) that references the billing group where the custom line item applies to.
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    /**
     * The number of resources that are associated to the custom line item.
     *
     * @cloudformationAttribute AssociationSize
     */
    get attrAssociationSize(): number;
    /**
     * The time created.
     *
     * @cloudformationAttribute CreationTime
     */
    get attrCreationTime(): number;
    /**
     * The custom line item's charge value currency. Only one of the valid values can be used.
     *
     * @cloudformationAttribute CurrencyCode
     */
    get attrCurrencyCode(): string;
    /**
     * The most recent time the custom line item was modified.
     *
     * @cloudformationAttribute LastModifiedTime
     */
    get attrLastModifiedTime(): number;
    /**
     * The product code associated with the custom line item.
     *
     * @cloudformationAttribute ProductCode
     */
    get attrProductCode(): 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 CfnCustomLineItem {
    /**
     * The billing period range in which the custom line item request will be applied.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-billingperiodrange.html
     */
    interface BillingPeriodRangeProperty {
        /**
         * The exclusive end billing period that defines a billing period range where a custom line is applied.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-billingperiodrange.html#cfn-billingconductor-customlineitem-billingperiodrange-exclusiveendbillingperiod
         */
        readonly exclusiveEndBillingPeriod?: string;
        /**
         * The inclusive start billing period that defines a billing period range where a custom line is applied.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-billingperiodrange.html#cfn-billingconductor-customlineitem-billingperiodrange-inclusivestartbillingperiod
         */
        readonly inclusiveStartBillingPeriod?: string;
    }
    /**
     * The charge details of a custom line item.
     *
     * It should contain only one of `Flat` or `Percentage` .
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemchargedetails.html
     */
    interface CustomLineItemChargeDetailsProperty {
        /**
         * A `CustomLineItemFlatChargeDetails` that describes the charge details of a flat custom line item.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemchargedetails.html#cfn-billingconductor-customlineitem-customlineitemchargedetails-flat
         */
        readonly flat?: CfnCustomLineItem.CustomLineItemFlatChargeDetailsProperty | cdk.IResolvable;
        /**
         * A representation of the line item filter.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemchargedetails.html#cfn-billingconductor-customlineitem-customlineitemchargedetails-lineitemfilters
         */
        readonly lineItemFilters?: Array<cdk.IResolvable | CfnCustomLineItem.LineItemFilterProperty> | cdk.IResolvable;
        /**
         * A `CustomLineItemPercentageChargeDetails` that describes the charge details of a percentage custom line item.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemchargedetails.html#cfn-billingconductor-customlineitem-customlineitemchargedetails-percentage
         */
        readonly percentage?: CfnCustomLineItem.CustomLineItemPercentageChargeDetailsProperty | cdk.IResolvable;
        /**
         * The type of the custom line item that indicates whether the charge is a fee or credit.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemchargedetails.html#cfn-billingconductor-customlineitem-customlineitemchargedetails-type
         */
        readonly type: string;
    }
    /**
     * A representation of the line item filter for your custom line item.
     *
     * You can use line item filters to include or exclude specific resource values from the billing group's total cost. For example, if you create a custom line item and you want to filter out a value, such as Savings Plans discounts, you can update `LineItemFilter` to exclude it.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-lineitemfilter.html
     */
    interface LineItemFilterProperty {
        /**
         * The attribute of the line item filter.
         *
         * This specifies what attribute that you can filter on.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-lineitemfilter.html#cfn-billingconductor-customlineitem-lineitemfilter-attribute
         */
        readonly attribute: string;
        /**
         * The values of the line item filter.
         *
         * This specifies the values to filter on.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-lineitemfilter.html#cfn-billingconductor-customlineitem-lineitemfilter-attributevalues
         */
        readonly attributeValues?: Array<string>;
        /**
         * The match criteria of the line item filter.
         *
         * This parameter specifies whether not to include the resource value from the billing group total cost.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-lineitemfilter.html#cfn-billingconductor-customlineitem-lineitemfilter-matchoption
         */
        readonly matchOption: string;
        /**
         * The values of the line item filter.
         *
         * This specifies the values to filter on. Currently, you can only exclude Savings Plans discounts.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-lineitemfilter.html#cfn-billingconductor-customlineitem-lineitemfilter-values
         */
        readonly values?: Array<string>;
    }
    /**
     * A representation of the charge details associated with a percentage custom line item.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitempercentagechargedetails.html
     */
    interface CustomLineItemPercentageChargeDetailsProperty {
        /**
         * A list of resource ARNs to associate to the percentage custom line item.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitempercentagechargedetails.html#cfn-billingconductor-customlineitem-customlineitempercentagechargedetails-childassociatedresources
         */
        readonly childAssociatedResources?: Array<string>;
        /**
         * The custom line item's percentage value.
         *
         * This will be multiplied against the combined value of its associated resources to determine its charge value.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitempercentagechargedetails.html#cfn-billingconductor-customlineitem-customlineitempercentagechargedetails-percentagevalue
         */
        readonly percentageValue: number;
    }
    /**
     * The charge details of a custom line item.
     *
     * It should contain only one of `Flat` or `Percentage` .
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemflatchargedetails.html
     */
    interface CustomLineItemFlatChargeDetailsProperty {
        /**
         * The custom line item's fixed charge value in USD.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemflatchargedetails.html#cfn-billingconductor-customlineitem-customlineitemflatchargedetails-chargevalue
         */
        readonly chargeValue: number;
    }
    /**
     * An object that defines how custom line item charges are presented in the bill, containing specifications for service presentation.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-presentationdetails.html
     */
    interface PresentationDetailsProperty {
        /**
         * The service under which the custom line item charges will be presented.
         *
         * Must be a string between 1 and 128 characters matching the pattern `^[a-zA-Z0-9]+$` .
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-presentationdetails.html#cfn-billingconductor-customlineitem-presentationdetails-service
         */
        readonly service: string;
    }
}
/**
 * Properties for defining a `CfnCustomLineItem`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html
 */
export interface CfnCustomLineItemProps {
    /**
     * The AWS account in which this custom line item will be applied to.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-accountid
     */
    readonly accountId?: string;
    /**
     * The Amazon Resource Name (ARN) that references the billing group where the custom line item applies to.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-billinggrouparn
     */
    readonly billingGroupArn: string;
    /**
     * A time range for which the custom line item is effective.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-billingperiodrange
     */
    readonly billingPeriodRange?: CfnCustomLineItem.BillingPeriodRangeProperty | cdk.IResolvable;
    /**
     * The computation rule that determines how the custom line item charges are computed and reflected in the bill.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-computationrule
     */
    readonly computationRule?: string;
    /**
     * The charge details of a custom line item.
     *
     * It should contain only one of `Flat` or `Percentage` .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-customlineitemchargedetails
     */
    readonly customLineItemChargeDetails?: CfnCustomLineItem.CustomLineItemChargeDetailsProperty | cdk.IResolvable;
    /**
     * The custom line item's description.
     *
     * This is shown on the Bills page in association with the charge value.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-description
     */
    readonly description?: string;
    /**
     * The custom line item's name.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-name
     */
    readonly name: string;
    /**
     * Configuration details specifying how the custom line item charges are presented, including which service the charges are shown under.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-presentationdetails
     */
    readonly presentationDetails?: cdk.IResolvable | CfnCustomLineItem.PresentationDetailsProperty;
    /**
     * A map that contains tag keys and tag values that are attached to a custom line item.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-customlineitem.html#cfn-billingconductor-customlineitem-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
}
/**
 * Creates a pricing plan that is used for computing AWS charges for billing groups.
 *
 * @cloudformationResource AWS::BillingConductor::PricingPlan
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingplan.html
 */
export declare class CfnPricingPlan extends cdk.CfnResource implements cdk.IInspectable, IPricingPlanRef, cdk.ITaggable {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnPricingPlan 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): CfnPricingPlan;
    /**
     * Checks whether the given object is a CfnPricingPlan
     */
    static isCfnPricingPlan(x: any): x is CfnPricingPlan;
    static arnForPricingPlan(resource: IPricingPlanRef): string;
    /**
     * The pricing plan description.
     */
    private _description?;
    /**
     * The name of a pricing plan.
     */
    private _name;
    /**
     * The `PricingRuleArns` that are associated with the Pricing Plan.
     */
    private _pricingRuleArns?;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly tags: cdk.TagManager;
    /**
     * A map that contains tag keys and tag values that are attached to a pricing plan.
     */
    private _tagsRaw?;
    /**
     * Create a new `AWS::BillingConductor::PricingPlan`.
     *
     * @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: CfnPricingPlanProps);
    get pricingPlanRef(): PricingPlanReference;
    /**
     * The pricing plan description.
     */
    get description(): string | undefined;
    /**
     * The pricing plan description.
     */
    set description(value: string | undefined);
    /**
     * The name of a pricing plan.
     */
    get name(): string;
    /**
     * The name of a pricing plan.
     */
    set name(value: string);
    /**
     * The `PricingRuleArns` that are associated with the Pricing Plan.
     */
    get pricingRuleArns(): Array<string> | undefined;
    /**
     * The `PricingRuleArns` that are associated with the Pricing Plan.
     */
    set pricingRuleArns(value: Array<string> | undefined);
    /**
     * A map that contains tag keys and tag values that are attached to a pricing plan.
     */
    get tagsRaw(): Array<cdk.CfnTag> | undefined;
    /**
     * A map that contains tag keys and tag values that are attached to a pricing plan.
     */
    set tagsRaw(value: Array<cdk.CfnTag> | undefined);
    /**
     * The Amazon Resource Name (ARN) of the created pricing plan.
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    /**
     * The time the pricing plan was created.
     *
     * @cloudformationAttribute CreationTime
     */
    get attrCreationTime(): number;
    /**
     * The most recent time the pricing plan was modified.
     *
     * @cloudformationAttribute LastModifiedTime
     */
    get attrLastModifiedTime(): number;
    /**
     * The pricing rules count currently associated with this pricing plan list element.
     *
     * @cloudformationAttribute Size
     */
    get attrSize(): number;
    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>;
}
/**
 * Properties for defining a `CfnPricingPlan`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingplan.html
 */
export interface CfnPricingPlanProps {
    /**
     * The pricing plan description.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingplan.html#cfn-billingconductor-pricingplan-description
     */
    readonly description?: string;
    /**
     * The name of a pricing plan.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingplan.html#cfn-billingconductor-pricingplan-name
     */
    readonly name: string;
    /**
     * The `PricingRuleArns` that are associated with the Pricing Plan.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingplan.html#cfn-billingconductor-pricingplan-pricingrulearns
     */
    readonly pricingRuleArns?: Array<string>;
    /**
     * A map that contains tag keys and tag values that are attached to a pricing plan.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingplan.html#cfn-billingconductor-pricingplan-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
}
/**
 * Creates a pricing rule which can be associated with a pricing plan, or a set of pricing plans.
 *
 * @cloudformationResource AWS::BillingConductor::PricingRule
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html
 */
export declare class CfnPricingRule extends cdk.CfnResource implements cdk.IInspectable, IPricingRuleRef, cdk.ITaggable {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnPricingRule 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): CfnPricingRule;
    /**
     * Checks whether the given object is a CfnPricingRule
     */
    static isCfnPricingRule(x: any): x is CfnPricingRule;
    static arnForPricingRule(resource: IPricingRuleRef): string;
    /**
     * The seller of services provided by AWS , their affiliates, or third-party providers selling services via AWS Marketplace .
     */
    private _billingEntity?;
    /**
     * The pricing rule description.
     */
    private _description?;
    /**
     * A percentage modifier applied on the public pricing rates.
     */
    private _modifierPercentage?;
    /**
     * The name of a pricing rule.
     */
    private _name;
    /**
     * Operation is the specific AWS action covered by this line item.
     */
    private _operation?;
    /**
     * The scope of pricing rule that indicates if it's globally applicable or service-specific.
     */
    private _scope;
    /**
     * If the `Scope` attribute is `SERVICE` , this attribute indicates which service the `PricingRule` is applicable for.
     */
    private _service?;
    /**
     * Tag Manager which manages the tags for this resource
     */
    readonly tags: cdk.TagManager;
    /**
     * A map that contains tag keys and tag values that are attached to a pricing rule.
     */
    private _tagsRaw?;
    /**
     * The set of tiering configurations for the pricing rule.
     */
    private _tiering?;
    /**
     * The type of pricing rule.
     */
    private _type;
    /**
     * Usage Type is the unit that each service uses to measure the usage of a specific type of resource.
     */
    private _usageType?;
    /**
     * Create a new `AWS::BillingConductor::PricingRule`.
     *
     * @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: CfnPricingRuleProps);
    get pricingRuleRef(): PricingRuleReference;
    /**
     * The seller of services provided by AWS , their affiliates, or third-party providers selling services via AWS Marketplace .
     */
    get billingEntity(): string | undefined;
    /**
     * The seller of services provided by AWS , their affiliates, or third-party providers selling services via AWS Marketplace .
     */
    set billingEntity(value: string | undefined);
    /**
     * The pricing rule description.
     */
    get description(): string | undefined;
    /**
     * The pricing rule description.
     */
    set description(value: string | undefined);
    /**
     * A percentage modifier applied on the public pricing rates.
     */
    get modifierPercentage(): number | undefined;
    /**
     * A percentage modifier applied on the public pricing rates.
     */
    set modifierPercentage(value: number | undefined);
    /**
     * The name of a pricing rule.
     */
    get name(): string;
    /**
     * The name of a pricing rule.
     */
    set name(value: string);
    /**
     * Operation is the specific AWS action covered by this line item.
     */
    get operation(): string | undefined;
    /**
     * Operation is the specific AWS action covered by this line item.
     */
    set operation(value: string | undefined);
    /**
     * The scope of pricing rule that indicates if it's globally applicable or service-specific.
     */
    get scope(): string;
    /**
     * The scope of pricing rule that indicates if it's globally applicable or service-specific.
     */
    set scope(value: string);
    /**
     * If the `Scope` attribute is `SERVICE` , this attribute indicates which service the `PricingRule` is applicable for.
     */
    get service(): string | undefined;
    /**
     * If the `Scope` attribute is `SERVICE` , this attribute indicates which service the `PricingRule` is applicable for.
     */
    set service(value: string | undefined);
    /**
     * A map that contains tag keys and tag values that are attached to a pricing rule.
     */
    get tagsRaw(): Array<cdk.CfnTag> | undefined;
    /**
     * A map that contains tag keys and tag values that are attached to a pricing rule.
     */
    set tagsRaw(value: Array<cdk.CfnTag> | undefined);
    /**
     * The set of tiering configurations for the pricing rule.
     */
    get tiering(): cdk.IResolvable | CfnPricingRule.TieringProperty | undefined;
    /**
     * The set of tiering configurations for the pricing rule.
     */
    set tiering(value: cdk.IResolvable | CfnPricingRule.TieringProperty | undefined);
    /**
     * The type of pricing rule.
     */
    get type(): string;
    /**
     * The type of pricing rule.
     */
    set type(value: string);
    /**
     * Usage Type is the unit that each service uses to measure the usage of a specific type of resource.
     */
    get usageType(): string | undefined;
    /**
     * Usage Type is the unit that each service uses to measure the usage of a specific type of resource.
     */
    set usageType(value: string | undefined);
    /**
     * The Amazon Resource Name (ARN) used to uniquely identify a pricing rule.
     *
     * @cloudformationAttribute Arn
     */
    get attrArn(): string;
    /**
     * The pricing plans count that this pricing rule is associated with.
     *
     * @cloudformationAttribute AssociatedPricingPlanCount
     */
    get attrAssociatedPricingPlanCount(): number;
    /**
     * The time the pricing rule was created.
     *
     * @cloudformationAttribute CreationTime
     */
    get attrCreationTime(): number;
    /**
     * The most recent time the pricing rule was modified.
     *
     * @cloudformationAttribute LastModifiedTime
     */
    get attrLastModifiedTime(): number;
    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 CfnPricingRule {
    /**
     * The set of tiering configurations for the pricing rule.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-pricingrule-tiering.html
     */
    interface TieringProperty {
        /**
         * The possible AWS Free Tier configurations.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-pricingrule-tiering.html#cfn-billingconductor-pricingrule-tiering-freetier
         */
        readonly freeTier?: CfnPricingRule.FreeTierProperty | cdk.IResolvable;
    }
    /**
     * The possible AWS Free Tier configurations.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-pricingrule-freetier.html
     */
    interface FreeTierProperty {
        /**
         * Activate or deactivate AWS Free Tier.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-pricingrule-freetier.html#cfn-billingconductor-pricingrule-freetier-activated
         */
        readonly activated: boolean | cdk.IResolvable;
    }
}
/**
 * Properties for defining a `CfnPricingRule`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html
 */
export interface CfnPricingRuleProps {
    /**
     * The seller of services provided by AWS , their affiliates, or third-party providers selling services via AWS Marketplace .
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-billingentity
     */
    readonly billingEntity?: string;
    /**
     * The pricing rule description.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-description
     */
    readonly description?: string;
    /**
     * A percentage modifier applied on the public pricing rates.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-modifierpercentage
     */
    readonly modifierPercentage?: number;
    /**
     * The name of a pricing rule.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-name
     */
    readonly name: string;
    /**
     * Operation is the specific AWS action covered by this line item.
     *
     * This describes the specific usage of the line item.
     *
     * If the `Scope` attribute is set to `SKU` , this attribute indicates which operation the `PricingRule` is modifying. For example, a value of `RunInstances:0202` indicates the operation of running an Amazon EC2 instance.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-operation
     */
    readonly operation?: string;
    /**
     * The scope of pricing rule that indicates if it's globally applicable or service-specific.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-scope
     */
    readonly scope: string;
    /**
     * If the `Scope` attribute is `SERVICE` , this attribute indicates which service the `PricingRule` is applicable for.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-service
     */
    readonly service?: string;
    /**
     * A map that contains tag keys and tag values that are attached to a pricing rule.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
    /**
     * The set of tiering configurations for the pricing rule.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-tiering
     */
    readonly tiering?: cdk.IResolvable | CfnPricingRule.TieringProperty;
    /**
     * The type of pricing rule.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-type
     */
    readonly type: string;
    /**
     * Usage Type is the unit that each service uses to measure the usage of a specific type of resource.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-billingconductor-pricingrule.html#cfn-billingconductor-pricingrule-usagetype
     */
    readonly usageType?: string;
}
export type { IBillingGroupRef, BillingGroupReference };
export type { ICustomLineItemRef, CustomLineItemReference };
export type { IPricingPlanRef, PricingPlanReference };
export type { IPricingRuleRef, PricingRuleReference };
