import type { NonEmptyString } from "../../../common/CustomTypes/NonEmptyString";
import type { ErrorMapping, IdentityToken } from "../common";
import { ServiceClientBase } from "../ServiceClientBase";
import type { CreatedSubscriptionPaymentResult, CreateSubscriptionPaymentOptions, GetApplicablePlansResponse, GetSubscriptionPlansResponse, SetBillingCycleOptions, SubscriptionInfo, UpdateSubscriptionPaymentOptions, UpdateSubscriptionPaymentResult } from "./Types";
export interface PaymentsServiceOptions {
    endpoint?: string;
    getToken: () => Promise<IdentityToken>;
    errorMapping?: ErrorMapping;
}
export declare class PaymentsService extends ServiceClientBase {
    #private;
    constructor({ endpoint, getToken, errorMapping, }: PaymentsServiceOptions);
    getSubscriptionInfo(): Promise<SubscriptionInfo>;
    createSubscriptionPayment(options?: CreateSubscriptionPaymentOptions): Promise<CreatedSubscriptionPaymentResult>;
    updateSubscriptionPayment(options?: UpdateSubscriptionPaymentOptions): Promise<UpdateSubscriptionPaymentResult>;
    upgradeSubscriptionBillingCycle(options: SetBillingCycleOptions): Promise<void>;
    getSubscriptionPlans(): Promise<GetSubscriptionPlansResponse>;
    getApplicablePlans(): Promise<GetApplicablePlansResponse>;
    updateSubscriptionPlan(planId: NonEmptyString): Promise<void>;
}
