import type { Client } from 'openapi-fetch';
import type { RequestOptions } from './common.js';
import type { AddonCreate, operations, paths } from './schemas.js';
export declare class Addons {
    private client;
    constructor(client: Client<paths, `${string}/${string}`>);
    /**
     * Create a addon
     * @param addon - The addon to create
     * @param options - Optional request options
     * @returns The created addon
     */
    create(addon: AddonCreate, 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;
        key: string;
        readonly annotations?: import("./schemas.js").components["schemas"]["Annotations"];
        readonly version: number;
        instanceType: import("./schemas.js").components["schemas"]["AddonInstanceType"];
        currency: import("./schemas.js").components["schemas"]["CurrencyCode"];
        readonly effectiveFrom?: Date;
        readonly effectiveTo?: Date;
        readonly status: import("./schemas.js").components["schemas"]["AddonStatus"];
        rateCards: import("./schemas.js").components["schemas"]["RateCard"][];
        readonly validationErrors: import("./schemas.js").components["schemas"]["ValidationError"][] | null;
    } | undefined>;
    /**
     * List addons
     * @param params - Optional parameters for listing addons
     * @param options - Optional request options
     * @returns A list of addons
     */
    list(params?: operations['listAddons']['parameters']['query'], options?: RequestOptions): Promise<{
        totalCount: number;
        page: number;
        pageSize: number;
        items: import("./schemas.js").components["schemas"]["Addon"][];
    } | undefined>;
    /**
     * Get an addon by ID
     * @param addonId - The ID of the addon to retrieve
     * @param options - Optional request options
     * @returns The addon
     */
    get(addonId: 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;
        key: string;
        readonly annotations?: import("./schemas.js").components["schemas"]["Annotations"];
        readonly version: number;
        instanceType: import("./schemas.js").components["schemas"]["AddonInstanceType"];
        currency: import("./schemas.js").components["schemas"]["CurrencyCode"];
        readonly effectiveFrom?: Date;
        readonly effectiveTo?: Date;
        readonly status: import("./schemas.js").components["schemas"]["AddonStatus"];
        rateCards: import("./schemas.js").components["schemas"]["RateCard"][];
        readonly validationErrors: import("./schemas.js").components["schemas"]["ValidationError"][] | null;
    } | undefined>;
    /**
     * Update an addon
     * @param addonId - The ID of the addon to update
     * @param addon - The addon data to update
     * @param options - Optional request options
     * @returns The updated addon
     */
    update(addonId: string, addon: operations['updateAddon']['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;
        key: string;
        readonly annotations?: import("./schemas.js").components["schemas"]["Annotations"];
        readonly version: number;
        instanceType: import("./schemas.js").components["schemas"]["AddonInstanceType"];
        currency: import("./schemas.js").components["schemas"]["CurrencyCode"];
        readonly effectiveFrom?: Date;
        readonly effectiveTo?: Date;
        readonly status: import("./schemas.js").components["schemas"]["AddonStatus"];
        rateCards: import("./schemas.js").components["schemas"]["RateCard"][];
        readonly validationErrors: import("./schemas.js").components["schemas"]["ValidationError"][] | null;
    } | undefined>;
    /**
     * Delete an addon by ID
     * @param addonId - The ID of the addon to delete
     * @param options - Optional request options
     * @returns void or standard error response structure
     */
    delete(addonId: string, options?: RequestOptions): Promise<undefined>;
    /**
     * Publish an addon
     * @param addonId - The ID of the addon to publish
     * @param options - Optional request options
     * @returns The published addon
     */
    publish(addonId: 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;
        key: string;
        readonly annotations?: import("./schemas.js").components["schemas"]["Annotations"];
        readonly version: number;
        instanceType: import("./schemas.js").components["schemas"]["AddonInstanceType"];
        currency: import("./schemas.js").components["schemas"]["CurrencyCode"];
        readonly effectiveFrom?: Date;
        readonly effectiveTo?: Date;
        readonly status: import("./schemas.js").components["schemas"]["AddonStatus"];
        rateCards: import("./schemas.js").components["schemas"]["RateCard"][];
        readonly validationErrors: import("./schemas.js").components["schemas"]["ValidationError"][] | null;
    } | undefined>;
    /**
     * Archive an addon
     * @param addonId - The ID of the addon to archive
     * @param options - Optional request options
     * @returns The archived addon
     */
    archive(addonId: 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;
        key: string;
        readonly annotations?: import("./schemas.js").components["schemas"]["Annotations"];
        readonly version: number;
        instanceType: import("./schemas.js").components["schemas"]["AddonInstanceType"];
        currency: import("./schemas.js").components["schemas"]["CurrencyCode"];
        readonly effectiveFrom?: Date;
        readonly effectiveTo?: Date;
        readonly status: import("./schemas.js").components["schemas"]["AddonStatus"];
        rateCards: import("./schemas.js").components["schemas"]["RateCard"][];
        readonly validationErrors: import("./schemas.js").components["schemas"]["ValidationError"][] | null;
    } | undefined>;
}
