import type { Client } from 'openapi-fetch'; import type { RequestOptions } from './common.cjs'; import type { operations, PlanCreate, PlanReplaceUpdate, paths } from './schemas.cjs'; /** * Plans * Manage customer subscription plans and addon assignments. */ export declare class Plans { private client; addons: PlanAddons; constructor(client: Client); /** * Create a plan * @param plan - The plan to create * @param options - Optional request options * @returns The created plan */ create(plan: PlanCreate, options?: RequestOptions): Promise<{ readonly id: string; name: string; description?: string; metadata?: import("./schemas.cjs").components["schemas"]["Metadata"] | null; readonly createdAt: Date; readonly updatedAt: Date; readonly deletedAt?: Date; key: string; alignment?: import("./schemas.cjs").components["schemas"]["Alignment"]; readonly version: number; currency: import("./schemas.cjs").components["schemas"]["CurrencyCode"]; billingCadence: string; proRatingConfig?: import("./schemas.cjs").components["schemas"]["ProRatingConfig"]; readonly effectiveFrom?: Date; readonly effectiveTo?: Date; readonly status: import("./schemas.cjs").components["schemas"]["PlanStatus"]; settlementMode?: import("./schemas.cjs").components["schemas"]["BillingSettlementMode"]; phases: import("./schemas.cjs").components["schemas"]["PlanPhase"][]; readonly validationErrors: import("./schemas.cjs").components["schemas"]["ValidationError"][] | null; } | undefined>; /** * Get a plan by ID * @param planId - The ID of the plan to retrieve * @param params - Optional query parameters * @param options - Optional request options * @returns The plan */ get(planId: operations['getPlan']['parameters']['path']['planId'], params?: operations['getPlan']['parameters']['query'], options?: RequestOptions): Promise<{ readonly id: string; name: string; description?: string; metadata?: import("./schemas.cjs").components["schemas"]["Metadata"] | null; readonly createdAt: Date; readonly updatedAt: Date; readonly deletedAt?: Date; key: string; alignment?: import("./schemas.cjs").components["schemas"]["Alignment"]; readonly version: number; currency: import("./schemas.cjs").components["schemas"]["CurrencyCode"]; billingCadence: string; proRatingConfig?: import("./schemas.cjs").components["schemas"]["ProRatingConfig"]; readonly effectiveFrom?: Date; readonly effectiveTo?: Date; readonly status: import("./schemas.cjs").components["schemas"]["PlanStatus"]; settlementMode?: import("./schemas.cjs").components["schemas"]["BillingSettlementMode"]; phases: import("./schemas.cjs").components["schemas"]["PlanPhase"][]; readonly validationErrors: import("./schemas.cjs").components["schemas"]["ValidationError"][] | null; } | undefined>; /** * List plans * @param params - Optional parameters for listing plans * @param options - Optional request options * @returns A list of plans */ list(params?: operations['listPlans']['parameters']['query'], options?: RequestOptions): Promise<{ totalCount: number; page: number; pageSize: number; items: import("./schemas.cjs").components["schemas"]["Plan"][]; } | undefined>; /** * Update a plan * @param planId - The ID of the plan to update * @param plan - The plan data to update * @param options - Optional request options * @returns The updated plan */ update(planId: operations['updatePlan']['parameters']['path']['planId'], plan: PlanReplaceUpdate, options?: RequestOptions): Promise<{ readonly id: string; name: string; description?: string; metadata?: import("./schemas.cjs").components["schemas"]["Metadata"] | null; readonly createdAt: Date; readonly updatedAt: Date; readonly deletedAt?: Date; key: string; alignment?: import("./schemas.cjs").components["schemas"]["Alignment"]; readonly version: number; currency: import("./schemas.cjs").components["schemas"]["CurrencyCode"]; billingCadence: string; proRatingConfig?: import("./schemas.cjs").components["schemas"]["ProRatingConfig"]; readonly effectiveFrom?: Date; readonly effectiveTo?: Date; readonly status: import("./schemas.cjs").components["schemas"]["PlanStatus"]; settlementMode?: import("./schemas.cjs").components["schemas"]["BillingSettlementMode"]; phases: import("./schemas.cjs").components["schemas"]["PlanPhase"][]; readonly validationErrors: import("./schemas.cjs").components["schemas"]["ValidationError"][] | null; } | undefined>; /** * Delete a plan by ID * @param planId - The ID of the plan to delete * @param options - Optional request options * @returns void or standard error response structure */ delete(planId: operations['deletePlan']['parameters']['path']['planId'], options?: RequestOptions): Promise; /** * Archive a plan * @param planId - The ID of the plan to archive * @param options - Optional request options * @returns The archived plan */ archive(planId: operations['archivePlan']['parameters']['path']['planId'], options?: RequestOptions): Promise<{ readonly id: string; name: string; description?: string; metadata?: import("./schemas.cjs").components["schemas"]["Metadata"] | null; readonly createdAt: Date; readonly updatedAt: Date; readonly deletedAt?: Date; key: string; alignment?: import("./schemas.cjs").components["schemas"]["Alignment"]; readonly version: number; currency: import("./schemas.cjs").components["schemas"]["CurrencyCode"]; billingCadence: string; proRatingConfig?: import("./schemas.cjs").components["schemas"]["ProRatingConfig"]; readonly effectiveFrom?: Date; readonly effectiveTo?: Date; readonly status: import("./schemas.cjs").components["schemas"]["PlanStatus"]; settlementMode?: import("./schemas.cjs").components["schemas"]["BillingSettlementMode"]; phases: import("./schemas.cjs").components["schemas"]["PlanPhase"][]; readonly validationErrors: import("./schemas.cjs").components["schemas"]["ValidationError"][] | null; } | undefined>; /** * Publish a plan * @param planId - The ID of the plan to publish * @param options - Optional request options * @returns The published plan */ publish(planId: operations['publishPlan']['parameters']['path']['planId'], options?: RequestOptions): Promise<{ readonly id: string; name: string; description?: string; metadata?: import("./schemas.cjs").components["schemas"]["Metadata"] | null; readonly createdAt: Date; readonly updatedAt: Date; readonly deletedAt?: Date; key: string; alignment?: import("./schemas.cjs").components["schemas"]["Alignment"]; readonly version: number; currency: import("./schemas.cjs").components["schemas"]["CurrencyCode"]; billingCadence: string; proRatingConfig?: import("./schemas.cjs").components["schemas"]["ProRatingConfig"]; readonly effectiveFrom?: Date; readonly effectiveTo?: Date; readonly status: import("./schemas.cjs").components["schemas"]["PlanStatus"]; settlementMode?: import("./schemas.cjs").components["schemas"]["BillingSettlementMode"]; phases: import("./schemas.cjs").components["schemas"]["PlanPhase"][]; readonly validationErrors: import("./schemas.cjs").components["schemas"]["ValidationError"][] | null; } | undefined>; } /** * Plan Addons * Manage addon assignments for plans. */ export declare class PlanAddons { private client; constructor(client: Client); /** * List plan addons * @param planId - The ID of the plan * @param params - Optional query parameters * @param options - Optional request options * @returns A list of plan addons */ list(planId: operations['listPlanAddons']['parameters']['path']['planId'], params?: operations['listPlanAddons']['parameters']['query'], options?: RequestOptions): Promise<{ totalCount: number; page: number; pageSize: number; items: import("./schemas.cjs").components["schemas"]["PlanAddon"][]; } | undefined>; /** * Create a plan addon * @param planId - The ID of the plan * @param planAddon - The plan addon to create * @param options - Optional request options * @returns The created plan addon */ create(planId: operations['createPlanAddon']['parameters']['path']['planId'], planAddon: operations['createPlanAddon']['requestBody']['content']['application/json'], options?: RequestOptions): Promise<{ readonly createdAt: Date; readonly updatedAt: Date; readonly deletedAt?: Date; readonly annotations?: import("./schemas.cjs").components["schemas"]["Annotations"]; metadata?: import("./schemas.cjs").components["schemas"]["Metadata"]; readonly addon: import("./schemas.cjs").components["schemas"]["Addon"]; fromPlanPhase: string; maxQuantity?: number; readonly validationErrors: import("./schemas.cjs").components["schemas"]["ValidationError"][] | null; } | undefined>; /** * Get a plan addon by ID * @param planId - The ID of the plan * @param planAddonId - The ID of the plan addon * @param options - Optional request options * @returns The plan addon */ get(planId: operations['getPlanAddon']['parameters']['path']['planId'], planAddonId: operations['getPlanAddon']['parameters']['path']['planAddonId'], options?: RequestOptions): Promise<{ readonly createdAt: Date; readonly updatedAt: Date; readonly deletedAt?: Date; readonly annotations?: import("./schemas.cjs").components["schemas"]["Annotations"]; metadata?: import("./schemas.cjs").components["schemas"]["Metadata"]; readonly addon: import("./schemas.cjs").components["schemas"]["Addon"]; fromPlanPhase: string; maxQuantity?: number; readonly validationErrors: import("./schemas.cjs").components["schemas"]["ValidationError"][] | null; } | undefined>; /** * Update a plan addon * @param planId - The ID of the plan * @param planAddonId - The ID of the plan addon to update * @param planAddon - The plan addon data to update * @param options - Optional request options * @returns The updated plan addon */ update(planId: operations['updatePlanAddon']['parameters']['path']['planId'], planAddonId: operations['updatePlanAddon']['parameters']['path']['planAddonId'], planAddon: operations['updatePlanAddon']['requestBody']['content']['application/json'], options?: RequestOptions): Promise<{ readonly createdAt: Date; readonly updatedAt: Date; readonly deletedAt?: Date; readonly annotations?: import("./schemas.cjs").components["schemas"]["Annotations"]; metadata?: import("./schemas.cjs").components["schemas"]["Metadata"]; readonly addon: import("./schemas.cjs").components["schemas"]["Addon"]; fromPlanPhase: string; maxQuantity?: number; readonly validationErrors: import("./schemas.cjs").components["schemas"]["ValidationError"][] | null; } | undefined>; /** * Delete a plan addon by ID * @param planId - The ID of the plan * @param planAddonId - The ID of the plan addon to delete * @param options - Optional request options * @returns void or standard error response structure */ delete(planId: operations['deletePlanAddon']['parameters']['path']['planId'], planAddonId: operations['deletePlanAddon']['parameters']['path']['planAddonId'], options?: RequestOptions): Promise; }