import * as Core from 'cloudflaredev/core';
import { APIResource } from 'cloudflaredev/resource';
import * as ZonesSubscriptionsAPI from 'cloudflaredev/resources/zones/subscriptions';
import * as SubscriptionsAPI from 'cloudflaredev/resources/user/subscriptions';
import { SubscriptionsSinglePage } from 'cloudflaredev/resources/user/subscriptions';
export declare class Subscriptions extends APIResource {
    /**
     * Create a zone subscription, either plan or add-ons.
     */
    create(identifier: string, body: SubscriptionCreateParams, options?: Core.RequestOptions): Core.APIPromise<SubscriptionCreateResponse>;
    /**
     * Lists all of an account's subscriptions.
     */
    list(accountIdentifier: string, options?: Core.RequestOptions): Core.PagePromise<SubscriptionsSinglePage, SubscriptionsAPI.Subscription>;
    /**
     * Lists zone subscription details.
     */
    get(identifier: string, options?: Core.RequestOptions): Core.APIPromise<SubscriptionGetResponse>;
}
export type SubscriptionCreateResponse = unknown | string | null;
export type SubscriptionGetResponse = unknown | string | null;
export interface SubscriptionCreateParams {
    app?: SubscriptionCreateParams.App;
    /**
     * The list of add-ons subscribed to.
     */
    component_values?: Array<SubscriptionsAPI.SubscriptionComponentParam>;
    /**
     * How often the subscription is renewed automatically.
     */
    frequency?: 'weekly' | 'monthly' | 'quarterly' | 'yearly';
    /**
     * The rate plan applied to the subscription.
     */
    rate_plan?: SubscriptionsAPI.RatePlanParam;
    /**
     * A simple zone object. May have null properties if not a zone subscription.
     */
    zone?: SubscriptionsAPI.SubscriptionZoneParam;
}
export declare namespace SubscriptionCreateParams {
    interface App {
        /**
         * app install id.
         */
        install_id?: string;
    }
}
export declare namespace Subscriptions {
    export import SubscriptionCreateResponse = ZonesSubscriptionsAPI.SubscriptionCreateResponse;
    export import SubscriptionGetResponse = ZonesSubscriptionsAPI.SubscriptionGetResponse;
    export import SubscriptionCreateParams = ZonesSubscriptionsAPI.SubscriptionCreateParams;
}
export { SubscriptionsSinglePage };
//# sourceMappingURL=subscriptions.d.ts.map