import type { Client } from 'openapi-fetch';
import type { RequestOptions } from './common.js';
import type { operations, paths } from './schemas.js';
export declare class SubscriptionAddons {
    private client;
    constructor(client: Client<paths, `${string}/${string}`>);
    /**
     * Create a new subscription addon
     * @param subscriptionId - The ID of the subscription
     * @param addon - The subscription addon to create
     * @param options - Optional request options
     * @returns The created subscription addon
     */
    create(subscriptionId: string, addon: operations['createSubscriptionAddon']['requestBody']['content']['application/json'], options?: RequestOptions): Promise<{
        readonly id: string;
        name: string;
        description?: string;
        metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
        readonly createdAt: Date;
        readonly updatedAt: Date;
        readonly deletedAt?: Date;
        readonly activeFrom: Date;
        readonly activeTo?: Date;
        addon: {
            id: string;
            readonly key: string;
            readonly version: number;
            readonly instanceType: import("./schemas.js").components["schemas"]["AddonInstanceType"];
        };
        readonly quantityAt: Date;
        quantity: number;
        readonly timeline: import("./schemas.js").components["schemas"]["SubscriptionAddonTimelineSegment"][];
        readonly subscriptionId: string;
        readonly rateCards: import("./schemas.js").components["schemas"]["SubscriptionAddonRateCard"][];
    } | undefined>;
    /**
     * List all addons of a subscription
     * @param subscriptionId - The ID of the subscription
     * @param options - Optional request options
     * @returns A list of subscription addons
     */
    list(subscriptionId: string, options?: RequestOptions): Promise<{
        readonly id: string;
        name: string;
        description?: string;
        metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
        readonly createdAt: Date;
        readonly updatedAt: Date;
        readonly deletedAt?: Date;
        readonly activeFrom: Date;
        readonly activeTo?: Date;
        addon: {
            id: string;
            readonly key: string;
            readonly version: number;
            readonly instanceType: import("./schemas.js").components["schemas"]["AddonInstanceType"];
        };
        readonly quantityAt: Date;
        quantity: number;
        readonly timeline: import("./schemas.js").components["schemas"]["SubscriptionAddonTimelineSegment"][];
        readonly subscriptionId: string;
        readonly rateCards: import("./schemas.js").components["schemas"]["SubscriptionAddonRateCard"][];
    }[] | undefined>;
    /**
     * Get a subscription addon by id
     * @param subscriptionId - The ID of the subscription
     * @param subscriptionAddonId - The ID of the subscription addon
     * @param options - Optional request options
     * @returns The subscription addon
     */
    get(subscriptionId: string, subscriptionAddonId: string, options?: RequestOptions): Promise<{
        readonly id: string;
        name: string;
        description?: string;
        metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
        readonly createdAt: Date;
        readonly updatedAt: Date;
        readonly deletedAt?: Date;
        readonly activeFrom: Date;
        readonly activeTo?: Date;
        addon: {
            id: string;
            readonly key: string;
            readonly version: number;
            readonly instanceType: import("./schemas.js").components["schemas"]["AddonInstanceType"];
        };
        readonly quantityAt: Date;
        quantity: number;
        readonly timeline: import("./schemas.js").components["schemas"]["SubscriptionAddonTimelineSegment"][];
        readonly subscriptionId: string;
        readonly rateCards: import("./schemas.js").components["schemas"]["SubscriptionAddonRateCard"][];
    } | undefined>;
    /**
     * Updates a subscription addon
     * @param subscriptionId - The ID of the subscription
     * @param subscriptionAddonId - The ID of the subscription addon to update
     * @param addon - The subscription addon data to update
     * @param options - Optional request options
     * @returns The updated subscription addon
     */
    update(subscriptionId: string, subscriptionAddonId: string, addon: operations['updateSubscriptionAddon']['requestBody']['content']['application/json'], options?: RequestOptions): Promise<{
        readonly id: string;
        name: string;
        description?: string;
        metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
        readonly createdAt: Date;
        readonly updatedAt: Date;
        readonly deletedAt?: Date;
        readonly activeFrom: Date;
        readonly activeTo?: Date;
        addon: {
            id: string;
            readonly key: string;
            readonly version: number;
            readonly instanceType: import("./schemas.js").components["schemas"]["AddonInstanceType"];
        };
        readonly quantityAt: Date;
        quantity: number;
        readonly timeline: import("./schemas.js").components["schemas"]["SubscriptionAddonTimelineSegment"][];
        readonly subscriptionId: string;
        readonly rateCards: import("./schemas.js").components["schemas"]["SubscriptionAddonRateCard"][];
    } | undefined>;
}
