import * as core from "@terrascript/core";
export interface DimensionArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    matchOptions: core.Array<string> | core.ArrayOut<core.StringOut>;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class Dimension extends core.Schema<DimensionArgs> {
    key: string | core.StringOut;
    matchOptions: core.Array<string> | core.ArrayOut<core.StringOut>;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface CostCategoryBlkArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    matchOptions: core.Array<string> | core.ArrayOut<core.StringOut>;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class CostCategoryBlk extends core.Schema<CostCategoryBlkArgs> {
    key: string | core.StringOut;
    matchOptions: core.Array<string> | core.ArrayOut<core.StringOut>;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface TagsArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    matchOptions: core.Array<string> | core.ArrayOut<core.StringOut>;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class Tags extends core.Schema<TagsArgs> {
    key: string | core.StringOut;
    matchOptions: core.Array<string> | core.ArrayOut<core.StringOut>;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface NotArgs extends core.SchemaArgs {
    costCategory: core.Array<CostCategoryBlk> | core.ArrayOut<CostCategoryBlk>;
    dimension: core.Array<Dimension> | core.ArrayOut<Dimension>;
    tags: core.Array<Tags> | core.ArrayOut<Tags>;
}
export declare class Not extends core.Schema<NotArgs> {
    costCategory: core.Array<CostCategoryBlk> | core.ArrayOut<CostCategoryBlk>;
    dimension: core.Array<Dimension> | core.ArrayOut<Dimension>;
    tags: core.Array<Tags> | core.ArrayOut<Tags>;
}
export interface OrArgs extends core.SchemaArgs {
    costCategory: core.Array<CostCategoryBlk> | core.ArrayOut<CostCategoryBlk>;
    dimension: core.Array<Dimension> | core.ArrayOut<Dimension>;
    tags: core.Array<Tags> | core.ArrayOut<Tags>;
}
export declare class Or extends core.Schema<OrArgs> {
    costCategory: core.Array<CostCategoryBlk> | core.ArrayOut<CostCategoryBlk>;
    dimension: core.Array<Dimension> | core.ArrayOut<Dimension>;
    tags: core.Array<Tags> | core.ArrayOut<Tags>;
}
export interface AndArgs extends core.SchemaArgs {
    costCategory: core.Array<CostCategoryBlk> | core.ArrayOut<CostCategoryBlk>;
    dimension: core.Array<Dimension> | core.ArrayOut<Dimension>;
    tags: core.Array<Tags> | core.ArrayOut<Tags>;
}
export declare class And extends core.Schema<AndArgs> {
    costCategory: core.Array<CostCategoryBlk> | core.ArrayOut<CostCategoryBlk>;
    dimension: core.Array<Dimension> | core.ArrayOut<Dimension>;
    tags: core.Array<Tags> | core.ArrayOut<Tags>;
}
export interface RuleRuleArgs extends core.SchemaArgs {
    and: core.Array<And> | core.ArrayOut<And>;
    costCategory: core.Array<CostCategoryBlk> | core.ArrayOut<CostCategoryBlk>;
    dimension: core.Array<Dimension> | core.ArrayOut<Dimension>;
    not: core.Array<Not> | core.ArrayOut<Not>;
    or: core.Array<Or> | core.ArrayOut<Or>;
    tags: core.Array<Tags> | core.ArrayOut<Tags>;
}
export declare class RuleRule extends core.Schema<RuleRuleArgs> {
    and: core.Array<And> | core.ArrayOut<And>;
    costCategory: core.Array<CostCategoryBlk> | core.ArrayOut<CostCategoryBlk>;
    dimension: core.Array<Dimension> | core.ArrayOut<Dimension>;
    not: core.Array<Not> | core.ArrayOut<Not>;
    or: core.Array<Or> | core.ArrayOut<Or>;
    tags: core.Array<Tags> | core.ArrayOut<Tags>;
}
export interface InheritedValueArgs extends core.SchemaArgs {
    dimensionKey: string | core.StringOut;
    dimensionName: string | core.StringOut;
}
export declare class InheritedValue extends core.Schema<InheritedValueArgs> {
    dimensionKey: string | core.StringOut;
    dimensionName: string | core.StringOut;
}
export interface RuleArgs extends core.SchemaArgs {
    inheritedValue: core.Array<InheritedValue> | core.ArrayOut<InheritedValue>;
    rule: core.Array<RuleRule> | core.ArrayOut<RuleRule>;
    type: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class Rule extends core.Schema<RuleArgs> {
    inheritedValue: core.Array<InheritedValue> | core.ArrayOut<InheritedValue>;
    rule: core.Array<RuleRule> | core.ArrayOut<RuleRule>;
    type: string | core.StringOut;
    value: string | core.StringOut;
}
export interface ParameterArgs extends core.SchemaArgs {
    type: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class Parameter extends core.Schema<ParameterArgs> {
    type: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface SplitChargeRuleArgs extends core.SchemaArgs {
    method: string | core.StringOut;
    parameter: core.Array<Parameter> | core.ArrayOut<Parameter>;
    source: string | core.StringOut;
    targets: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class SplitChargeRule extends core.Schema<SplitChargeRuleArgs> {
    method: string | core.StringOut;
    parameter: core.Array<Parameter> | core.ArrayOut<Parameter>;
    source: string | core.StringOut;
    targets: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface DsCostCategoryArgs {
    costCategoryArn: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class DsCostCategory extends core.Data<DsCostCategoryArgs> {
    costCategoryArn: string | core.StringOut;
    effectiveEnd: string | core.StringOut;
    effectiveStart: string | core.StringOut;
    id: string | core.StringOut;
    name: string | core.StringOut;
    rule: core.Array<Rule> | core.ArrayOut<Rule>;
    ruleVersion: string | core.StringOut;
    splitChargeRule: core.Array<SplitChargeRule> | core.ArrayOut<SplitChargeRule>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    constructor(name: string, args?: DsCostCategoryArgs);
    getNamespace(): string;
}
//# sourceMappingURL=ds_cost_category.d.ts.map