import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as AvailableRatePlansAPI from 'cloudflare/resources/available-rate-plans';
export declare class AvailableRatePlans extends APIResource {
    /**
     * Lists all rate plans the zone can subscribe to.
     */
    get(zoneIdentifier: string, options?: Core.RequestOptions): Core.APIPromise<AvailableRatePlanGetResponse | null>;
}
export interface BillSubsRatePlan {
    /**
     * Plan identifier tag.
     */
    id?: string;
    /**
     * Array of available components values for the plan.
     */
    components?: Array<BillSubsRatePlan.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 BillSubsRatePlan {
    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 AvailableRatePlanGetResponse = Array<AvailableRatePlanGetResponse.AvailableRatePlanGetResponseItem>;
export declare namespace AvailableRatePlanGetResponse {
    interface AvailableRatePlanGetResponseItem {
        /**
         * Plan identifier tag.
         */
        id?: string;
        /**
         * Array of available components values for the plan.
         */
        components?: Array<AvailableRatePlanGetResponseItem.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 AvailableRatePlanGetResponseItem {
        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 AvailableRatePlans {
    export import BillSubsRatePlan = AvailableRatePlansAPI.BillSubsRatePlan;
    export import AvailableRatePlanGetResponse = AvailableRatePlansAPI.AvailableRatePlanGetResponse;
}
//# sourceMappingURL=available-rate-plans.d.ts.map