import * as core from "@terrascript/core";
export interface ThrottleSettingsArgs extends core.SchemaArgs {
    burstLimit?: number | core.NumberOut;
    rateLimit?: number | core.NumberOut;
}
export declare class ThrottleSettings extends core.Schema<ThrottleSettingsArgs> {
    burstLimit?: number | core.NumberOut;
    rateLimit?: number | core.NumberOut;
}
export interface ThrottleArgs extends core.SchemaArgs {
    burstLimit?: number | core.NumberOut;
    path: string | core.StringOut;
    rateLimit?: number | core.NumberOut;
}
export declare class Throttle extends core.Schema<ThrottleArgs> {
    burstLimit?: number | core.NumberOut;
    path: string | core.StringOut;
    rateLimit?: number | core.NumberOut;
}
export interface ApiStagesArgs extends core.SchemaArgs {
    apiId: string | core.StringOut;
    stage: string | core.StringOut;
    throttle?: core.Array<Throttle> | core.ArrayOut<Throttle>;
}
export declare class ApiStages extends core.Schema<ApiStagesArgs> {
    apiId: string | core.StringOut;
    stage: string | core.StringOut;
    throttle?: core.Array<Throttle> | core.ArrayOut<Throttle>;
}
export interface QuotaSettingsArgs extends core.SchemaArgs {
    limit: number | core.NumberOut;
    offset?: number | core.NumberOut;
    period: string | core.StringOut;
}
export declare class QuotaSettings extends core.Schema<QuotaSettingsArgs> {
    limit: number | core.NumberOut;
    offset?: number | core.NumberOut;
    period: string | core.StringOut;
}
export interface UsagePlanArgs extends core.ResourceArgs {
    apiStages?: core.Array<ApiStages> | core.ArrayOut<ApiStages>;
    description?: string | core.StringOut;
    name: string | core.StringOut;
    productCode?: string | core.StringOut;
    quotaSettings?: QuotaSettings;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    throttleSettings?: ThrottleSettings;
}
export declare class UsagePlan extends core.Resource<UsagePlanArgs> {
    apiStages?: core.Array<ApiStages> | core.ArrayOut<ApiStages>;
    arn: string | core.StringOut;
    description?: string | core.StringOut;
    id: string | core.StringOut;
    name: string | core.StringOut;
    productCode?: string | core.StringOut;
    quotaSettings?: QuotaSettings;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    throttleSettings?: ThrottleSettings;
    constructor(name: string, args?: UsagePlanArgs);
    getNamespace(): string;
}
//# sourceMappingURL=usage_plan.d.ts.map