import * as core from "@terrascript/core";
export interface CostFilterArgs extends core.SchemaArgs {
    name: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class CostFilter extends core.Schema<CostFilterArgs> {
    name: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface CostTypesArgs extends core.SchemaArgs {
    includeCredit?: boolean | core.BooleanOut;
    includeDiscount?: boolean | core.BooleanOut;
    includeOtherSubscription?: boolean | core.BooleanOut;
    includeRecurring?: boolean | core.BooleanOut;
    includeRefund?: boolean | core.BooleanOut;
    includeSubscription?: boolean | core.BooleanOut;
    includeSupport?: boolean | core.BooleanOut;
    includeTax?: boolean | core.BooleanOut;
    includeUpfront?: boolean | core.BooleanOut;
    useAmortized?: boolean | core.BooleanOut;
    useBlended?: boolean | core.BooleanOut;
}
export declare class CostTypes extends core.Schema<CostTypesArgs> {
    includeCredit?: boolean | core.BooleanOut;
    includeDiscount?: boolean | core.BooleanOut;
    includeOtherSubscription?: boolean | core.BooleanOut;
    includeRecurring?: boolean | core.BooleanOut;
    includeRefund?: boolean | core.BooleanOut;
    includeSubscription?: boolean | core.BooleanOut;
    includeSupport?: boolean | core.BooleanOut;
    includeTax?: boolean | core.BooleanOut;
    includeUpfront?: boolean | core.BooleanOut;
    useAmortized?: boolean | core.BooleanOut;
    useBlended?: boolean | core.BooleanOut;
}
export interface NotificationArgs extends core.SchemaArgs {
    comparisonOperator: string | core.StringOut;
    notificationType: string | core.StringOut;
    subscriberEmailAddresses?: core.Array<string> | core.ArrayOut<core.StringOut>;
    subscriberSnsTopicArns?: core.Array<string> | core.ArrayOut<core.StringOut>;
    threshold: number | core.NumberOut;
    thresholdType: string | core.StringOut;
}
export declare class Notification extends core.Schema<NotificationArgs> {
    comparisonOperator: string | core.StringOut;
    notificationType: string | core.StringOut;
    subscriberEmailAddresses?: core.Array<string> | core.ArrayOut<core.StringOut>;
    subscriberSnsTopicArns?: core.Array<string> | core.ArrayOut<core.StringOut>;
    threshold: number | core.NumberOut;
    thresholdType: string | core.StringOut;
}
export interface BudgetArgs extends core.ResourceArgs {
    accountId?: string | core.StringOut;
    budgetType: string | core.StringOut;
    costFilter?: core.Array<CostFilter> | core.ArrayOut<CostFilter>;
    costFilters?: core.Map<string, string> | core.MapOut<core.StringOut>;
    costTypes?: CostTypes;
    limitAmount: string | core.StringOut;
    limitUnit: string | core.StringOut;
    name?: string | core.StringOut;
    namePrefix?: string | core.StringOut;
    notification?: core.Array<Notification> | core.ArrayOut<Notification>;
    timePeriodEnd?: string | core.StringOut;
    timePeriodStart?: string | core.StringOut;
    timeUnit: string | core.StringOut;
}
export declare class Budget extends core.Resource<BudgetArgs> {
    accountId?: string | core.StringOut;
    arn: string | core.StringOut;
    budgetType: string | core.StringOut;
    costFilter?: core.Array<CostFilter> | core.ArrayOut<CostFilter>;
    costFilters?: core.Map<string, string> | core.MapOut<core.StringOut>;
    costTypes?: CostTypes;
    id: string | core.StringOut;
    limitAmount: string | core.StringOut;
    limitUnit: string | core.StringOut;
    name?: string | core.StringOut;
    namePrefix?: string | core.StringOut;
    notification?: core.Array<Notification> | core.ArrayOut<Notification>;
    timePeriodEnd?: string | core.StringOut;
    timePeriodStart?: string | core.StringOut;
    timeUnit: string | core.StringOut;
    constructor(name: string, args?: BudgetArgs);
    getNamespace(): string;
}
//# sourceMappingURL=budget.d.ts.map