import { IFeatures, IProductPricingResponseSchema, IProductResponseSchema } from './products.types'; export type ISO8601Duration = `P${string}` | `PT${string}`; export declare enum EPlanStatus { DRAFT = "draft", ACTIVE = "active", PAUSED = "paused", EXPIRED = "expired", DISPUTED = "disputed" } declare enum ETriggerType { event_based = "event_based", time_based = "time_based" } export type IPlansBaseSchema = { name: string; description: string; schedule: ISchedule; currency: string; status: EPlanStatus; }; export type IPlansResponseSchema = { phases: IPlansPhase[]; } & IPlansForList; export type ISchedule = { duration: ISO8601Duration; start_offset?: ISO8601Duration; trigger_type?: ETriggerType; }; export type IPlansPhase = { id?: string; name: string; description?: string | null; order: number; schedule: ISchedule; pricings?: IPlansPricing[]; features?: IFeatures | null; }; export type IPlansPricing = { schedule: ISchedule; product_id: string; pricing_id: string; product?: IProductResponseSchema; pricing?: IProductPricingResponseSchema; }; export type IPlansRequestSchema = { phases: IPlansPhase[]; } & IPlansBaseSchema; export type IPlansForList = { id: string; created_at: string; updated_at: string; } & IPlansBaseSchema; export type IPlansList = { next?: string; previous?: string; total_count: number; results: IPlansForList[]; }; export type IAddPlanPhaseForm = { schedule: { duration: ISO8601Duration; start_offset?: ISO8601Duration; }; add_phase_type: EAddPhaseType; selected_phase: { label: string; value: IPlansPhase; } | null; }; export declare enum EAddPhaseType { CopyPhase = "copy_phase", NewPhase = "new_phase" } export {};