import * as core from "@terrascript/core";
export interface PredicatesArgs extends core.SchemaArgs {
    dataId: string | core.StringOut;
    negated: boolean | core.BooleanOut;
    type: string | core.StringOut;
}
export declare class Predicates extends core.Schema<PredicatesArgs> {
    dataId: string | core.StringOut;
    negated: boolean | core.BooleanOut;
    type: string | core.StringOut;
}
export interface RateBasedRuleArgs extends core.ResourceArgs {
    metricName: string | core.StringOut;
    name: string | core.StringOut;
    predicates?: core.Array<Predicates> | core.ArrayOut<Predicates>;
    rateKey: string | core.StringOut;
    rateLimit: number | core.NumberOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class RateBasedRule extends core.Resource<RateBasedRuleArgs> {
    arn: string | core.StringOut;
    id: string | core.StringOut;
    metricName: string | core.StringOut;
    name: string | core.StringOut;
    predicates?: core.Array<Predicates> | core.ArrayOut<Predicates>;
    rateKey: string | core.StringOut;
    rateLimit: number | core.NumberOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    constructor(name: string, args?: RateBasedRuleArgs);
    getNamespace(): string;
}
//# sourceMappingURL=rate_based_rule.d.ts.map