// FIXME: Update this file to be type safe and remove this and next line // @ts-strict-ignore import { ProviderOrganizationOrganizationDetailsResponse } from "@bitwarden/common/admin-console/models/response/provider/provider-organization.response"; import { PaymentMethodType } from "@bitwarden/common/billing/enums"; import { ExpandedTaxInfoUpdateRequest } from "@bitwarden/common/billing/models/request/expanded-tax-info-update.request"; import { UpdatePaymentMethodRequest } from "@bitwarden/common/billing/models/request/update-payment-method.request"; import { VerifyBankAccountRequest } from "@bitwarden/common/billing/models/request/verify-bank-account.request"; import { InvoicesResponse } from "@bitwarden/common/billing/models/response/invoices.response"; import { PaymentMethodResponse } from "@bitwarden/common/billing/models/response/payment-method.response"; import { OrganizationCreateRequest } from "../../admin-console/models/request/organization-create.request"; import { SubscriptionCancellationRequest } from "../../billing/models/request/subscription-cancellation.request"; import { OrganizationBillingMetadataResponse } from "../../billing/models/response/organization-billing-metadata.response"; import { PlanResponse } from "../../billing/models/response/plan.response"; import { ListResponse } from "../../models/response/list.response"; import { CreateClientOrganizationRequest } from "../models/request/create-client-organization.request"; import { UpdateClientOrganizationRequest } from "../models/request/update-client-organization.request"; import { ProviderSubscriptionResponse } from "../models/response/provider-subscription-response"; export abstract class BillingApiServiceAbstraction { cancelOrganizationSubscription: ( organizationId: string, request: SubscriptionCancellationRequest, ) => Promise; cancelPremiumUserSubscription: (request: SubscriptionCancellationRequest) => Promise; createProviderClientOrganization: ( providerId: string, request: CreateClientOrganizationRequest, ) => Promise; createSetupIntent: (paymentMethodType: PaymentMethodType) => Promise; getOrganizationBillingMetadata: ( organizationId: string, ) => Promise; getOrganizationPaymentMethod: (organizationId: string) => Promise; getPlans: () => Promise>; getProviderClientInvoiceReport: (providerId: string, invoiceId: string) => Promise; getProviderClientOrganizations: ( providerId: string, ) => Promise>; getProviderInvoices: (providerId: string) => Promise; getProviderSubscription: (providerId: string) => Promise; updateOrganizationPaymentMethod: ( organizationId: string, request: UpdatePaymentMethodRequest, ) => Promise; updateOrganizationTaxInformation: ( organizationId: string, request: ExpandedTaxInfoUpdateRequest, ) => Promise; updateProviderClientOrganization: ( providerId: string, organizationId: string, request: UpdateClientOrganizationRequest, ) => Promise; updateProviderTaxInformation: ( providerId: string, request: ExpandedTaxInfoUpdateRequest, ) => Promise; verifyOrganizationBankAccount: ( organizationId: string, request: VerifyBankAccountRequest, ) => Promise; restartSubscription: ( organizationId: string, request: OrganizationCreateRequest, ) => Promise; }