import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as RatePlansAPI from 'cloudflare/resources/rate-plans';
export declare class RatePlans extends APIResource {
    /**
     * Lists all rate plans the zone can subscribe to.
     */
    get(zoneIdentifier: string, options?: Core.RequestOptions): Core.APIPromise<RatePlanGetResponse | null>;
}
export interface RatePlan {
    /**
     * Plan identifier tag.
     */
    id?: string;
    /**
     * Array of available components values for the plan.
     */
    components?: Array<RatePlan.Component>;
    /**
     * The monetary unit in which pricing information is displayed.
     */
    currency?: string;
    /**
     * The duration of the plan subscription.
     */
    duration?: number;
    /**
     * The frequency at which you will be billed for this plan.
     */
    frequency?: 'weekly' | 'monthly' | 'quarterly' | 'yearly';
    /**
     * The plan name.
     */
    name?: string;
}
export declare namespace RatePlan {
    interface Component {
        /**
         * The default amount allocated.
         */
        default?: number;
        /**
         * The unique component.
         */
        name?: 'zones' | 'page_rules' | 'dedicated_certificates' | 'dedicated_certificates_custom';
        /**
         * The unit price of the addon.
         */
        unit_price?: number;
    }
}
export type RatePlanGetResponse = Array<RatePlanGetResponse.RatePlanGetResponseItem>;
export declare namespace RatePlanGetResponse {
    interface RatePlanGetResponseItem {
        /**
         * Plan identifier tag.
         */
        id?: string;
        /**
         * Array of available components values for the plan.
         */
        components?: Array<RatePlanGetResponseItem.Component>;
        /**
         * The monetary unit in which pricing information is displayed.
         */
        currency?: string;
        /**
         * The duration of the plan subscription.
         */
        duration?: number;
        /**
         * The frequency at which you will be billed for this plan.
         */
        frequency?: 'weekly' | 'monthly' | 'quarterly' | 'yearly';
        /**
         * The plan name.
         */
        name?: string;
    }
    namespace RatePlanGetResponseItem {
        interface Component {
            /**
             * The default amount allocated.
             */
            default?: number;
            /**
             * The unique component.
             */
            name?: 'zones' | 'page_rules' | 'dedicated_certificates' | 'dedicated_certificates_custom';
            /**
             * The unit price of the addon.
             */
            unit_price?: number;
        }
    }
}
export declare namespace RatePlans {
    export import RatePlan = RatePlansAPI.RatePlan;
    export import RatePlanGetResponse = RatePlansAPI.RatePlanGetResponse;
}
//# sourceMappingURL=rate-plans.d.ts.map