UNPKG

@ref247/affiliate-sdk

Version:

Ref247.io Affiliate SDK - integrate with us from you backend or build your custom UI

786 lines (772 loc) 26.8 kB
import { AxiosInstance } from 'axios'; declare enum OrganizationPlanEnum { Free = "Free", Starter = "Starter", Growth = "Growth", Enterprise = "Enterprise" } declare enum CommissionStatusEnum { PENDING = "pending", PAID = "paid", REJECTED = "rejected" } declare enum ConditionOperatorEnum { GREATER_THAN = ">", GREATER_THAN_OR_EQUAL = ">=", LESS_THAN = "<", LESS_THAN_OR_EQUAL = "<=", EQUALS = "=", NOT_EQUALS = "!=", NONE = "NONE" } declare enum OrderEnum { ASC = "ASC", DESC = "DESC" } declare enum FileTypeEnum { PROFILE_PICTURE = "PROFILE_PICTURE", ORGANIZATION_LOGO = "ORGANIZATION_LOGO", ORGANIZATION_AFFILIATE_FILES = "ORGANIZATION_AFFILIATE_FILES" } declare enum OrgCurrencyEnum { USD = "USD", EUR = "EUR" } declare enum OrgEventTypeEnum { click = "click", deposit = "deposit" } declare enum PaymentStatusEnum { PENDING = "pending", COMPLETED = "completed", FAILED = "failed", REFUNDED = "refunded" } declare enum RoleEnum { Admin = "admin", Manager = "manager", Viewer = "viewer", Affiliate = "affiliate" } declare enum IntegrationTypeEnum { Gemini = "gemini" } /** * Converts a role to a role enum. */ declare const roleToRoleEnum: (role: Role) => RoleEnum; declare const validateConditionOperator: (operator: string) => boolean; interface CreateApiKey { name: string; role: RoleEnum; } interface RevokeApiKey { success: boolean; } interface UpdateOrganization { name: string; description: string; primaryColor?: string; billingEmail?: string; defaultLightMode?: boolean; orgLogoPath: string; customDomain?: string; hideEmail?: boolean; } interface OrgTheme { primaryColor: string; defaultLightMode: boolean; orgLogoPath: string; } interface CreateOrganization { name: string; userId: string; } interface UserRoleStats { role: string; count: number; } interface OrgPrivateStats { userStats: UserRoleStats[]; } interface OrgGenericStats { activeCampaigns: number; currencies: number; eventTypes: number; } interface ListUser { firstName: string; lastName: string; email: string; userId: string; roleId: string; roleName: string; affiliationId: string; profilePicturePath?: string; externalUserId?: string; createdAt: Date; deletedAt: Date; } interface UpdateUser { firstName?: string; lastName?: string; profilePicturePath?: string; } interface ApiKeyMe { id: string; organizationId: string; role: RoleEnum; isApiKey: boolean; } interface ApiKey { id: string; name: string; secret?: string; role: Role; lastUsed: Date; createdAt: Date; updated: Date; deletedAt: Date; user: User; organization: Organization; } interface OrganizationCurrency { id: string; name: string; createdAt: Date; updated: Date; deletedAt: Date; } interface OrganizationEventType { id: string; name: string; createdAt: Date; updated: Date; deletedAt: Date; } interface Organization { id: string; name: string; description: string; primaryColor: string; defaultLightMode: boolean; orgLogoPath: string; createdAt: Date; updated: Date; deletedAt: Date; campaignIds: string[]; organizationCurrency: OrganizationCurrency[]; organizationEventTypes: OrganizationEventType[]; pricingPlan: OrganizationPlan; allowedCustomDomain: boolean; eventsIncluded: number; extraEventsPriceUSD: number; monthlyPriceUSD: number; currentMonthEvents: number; currentFreePeriodEnd: Date; customDomain: string; billingEmail: string; stripeCustomerId: string; stripeSubscriptionId: string; hideEmail: boolean; } interface OrganizationPlan { id: string; name: string; monthlyPriceUSD: number; eventsIncluded: number; extraEventsPriceUSD: number; isApiAccess: boolean; isCustomDomain: boolean; features: string; missingFeatures: string; stripeFlatPriceId: string; stripeEventPriceId: string; level: number; toOrganizationPlanEnum(): OrganizationPlanEnum; } interface Role { id: string; name: string; } /** * Represents a user. */ interface User { id: string; firstName: string; lastName: string; email: string; createdAt: Date; updated: Date; deletedAt: Date; profilePicturePath: string; } interface UserOrganization { id: string; user: User; organization: Organization; role: Role; createdAt: Date; updated: Date; deletedAt: Date; } interface AddUserToOrganization { email: string; roleId: string; linkUri?: string; parentAffiliateId?: string; } interface OrganizationIntegration { id: string; type: IntegrationTypeEnum; value: string; isActive: boolean; createdAt: Date; updatedAt: Date; } interface CreateOrganizationIntegration { type: IntegrationTypeEnum; value?: string; isActive: boolean; } interface PageMetaParameters { pageOptions: PageOptions; itemCount: number; } interface PageMeta { readonly page: number; readonly take: number; readonly itemCount: number; readonly pageCount: number; readonly hasPreviousPage: boolean; readonly hasNextPage: boolean; } interface Page<T> { readonly data: T[]; readonly meta: PageMeta; } interface PageOptions { readonly order?: OrderEnum; readonly orderBy?: string; readonly searchTerm: string; readonly page: number; readonly take: number; get skip(): number; } interface AffiliateStats { totalCommissionsGenerated: number; totalCommissionsGained: number; totalReferrals: number; } interface OrganizationAffiliateStats { totalCommissionsGenerated: number; totalAffiliations: number; } interface CreateAffiliate { email: string; externalUserId?: string; orgId: string; affiliateParentId?: string; affiliateLinkId?: string; campaignId?: string; } interface UpdateAffiliate { externalUserId?: string; affiliateParentId?: string; affiliateLinkId?: string; campaignId?: string; userEmail?: string; } interface AffiliationList { id: string; userId: string; externalUserId: string; email: string; firstName?: string; lastName?: string; profilePicturePath?: string; createdAt: Date; deletedAt: Date; commissionGained: number; numberOfReferrals: number; commissionsGenerated: number; parentId: string; referredByLinkId: string; referredByLinkUri: string; referredByCampaignId: string; referredByCampaignName: string; } interface AffiliateBasicInfo { id: string; email: string; externalUserId: string; firstName?: string; lastName?: string; profilePicturePath?: string; } interface UpdateParent { affiliationId: string; newParentId: string; } interface EventAffiliate { userId: string; orgId: string; } interface CreateCampaign { orgId: string; name: string; description: string; landingPageUrl: string; isDefault: boolean; createDefaultCommissionStructure: boolean; } interface UpdateCampaignAssets { readonly assetsPath: string; } interface UpdateCampaign { readonly name: string; readonly description: string; readonly landingPageUrl: string; } interface CreateAffiliateLink { readonly affiliationId: string; readonly campaignId: string; } interface IncrementAffiliateLink { readonly affiliateLinkId: string; } interface AffiliateLink { id: string; affiliationId: string; campaignId: string; createdAt: Date; updated: Date; deletedAt: Date; clicks: number; conversions: number; uri: string; } interface Affiliation { id: string; externalUserId: string; createdAt: Date; updated: Date; deletedAt: Date; user: User; organizationId: string; referredByCampaign?: Campaign | null; referredByAffiliateLink?: AffiliateLink | null; parent?: Affiliation | null; campaigns: Campaign[]; affiliateLinks: AffiliateLink[]; } interface Campaign { id: string; organizationId: string; affiliateLinks: AffiliateLink[]; commissionStructureId: string; createdAt: Date; updated: Date; deletedAt: Date; name: string; description: string; landingPageUrl: string; isDefault: boolean; assetsPath: string; } interface AffiliationGenericList { id: string; createdAt: Date; deletedAt: Date; commissionGained: number; numberOfReferrals: number; commissionsGenerated: number; parentId: string; referredByLinkId: string; referredByLinkUri: string; referredByCampaignId: string; referredByCampaignName: string; } interface CommissionSummary { currency: string; pending: number; paid: number; } interface OrgCommissionChartData { pending: LineData[]; paid: LineData[]; } interface CommissionChartData { gained: LineData[]; generated: LineData[]; } interface LineData { date: string; [key: string]: string | number; } interface CreateCommissionStructure { name: string; orgId: string; campaignId?: string; affiliationTiers: number[]; } interface UpdateCommissionStructure { name: string; affiliationTiers: number[]; } interface UpdateCommissionRule { isOneTime?: boolean; useTotal?: boolean; percentage?: number; fixedAmount?: number; eventTypeId?: string; currencyId?: string; rewardCurrencyId?: string; operator?: ConditionOperatorEnum; value?: number; commissionStructureId?: string; } interface CreateCommissionStructureAndRuleEvent { createCommissionStructure: CreateCommissionStructure; createCommissionRule: CreateCommissionRule; } interface CreateCommission { amount: number; currencyId: string; affiliateId: string; referralId: string; } interface Commission { id: string; amount: number; currency: OrganizationCurrency; createdAt: Date; paidAt: Date; status: CommissionStatusEnum; affiliateId: string; referralId: string; } interface CreateCommissionRule { isOneTime?: boolean; useTotal?: boolean; percentage?: number; fixedAmount?: number; eventTypeId: string; currencyId: string; rewardCurrencyId: string; commissionStructureId: string; operator?: ConditionOperatorEnum; value?: number; } interface CommissionRule { id: string; eventType: OrganizationEventType; currency: OrganizationCurrency; rewardCurrency: OrganizationCurrency; commissionStructureId: string; createdAt: Date; updated: Date; deletedAt: Date; isOneTime?: boolean; useTotal?: boolean; percentage?: number; fixedAmount?: number; commissionRulesMetaData?: CommissionRuleMetaData[]; operator?: ConditionOperatorEnum; value?: number; } interface CommissionRuleMetaData { id: number; affiliationId: string; amount: number; appliedAt: Date; } interface CommissionStructure { id: string; name: string; rules: CommissionRule[]; organizationId: string; campaigns?: Campaign[]; affiliationTiers?: number[]; createdAt: Date; updated: Date; deletedAt: Date; } interface ReferralAction { id: string; amount: number; eventTypeId: string; affiliationId: string; orgId: string; linkId?: string; currencyId?: string; ip?: string; userAgent?: string; referrer?: string; createdAt: Date; processedDate?: Date; } interface CreateReferralAction { amount: number; eventTypeId: string; affiliationId: string; orgId: string; currencyId?: string; } interface CommissionGroup { affiliateId: string; externalUserId: string; currencyId: string; currencyName: string; totalAmount: number; status: CommissionStatusEnum; } interface Message { message: string; inserted: number; } interface SignedUrlResponse { signedUrl: string; authorizationToken: string; baseUrl: string; fileName: string; } interface UploadRequestOrganization { orgId: string; fileName: string; fileType: FileTypeEnum; } interface UploadRequestUser { userId: string; fileName: string; fileType: FileTypeEnum; } interface UploadResponse { uploadUrl: string; authorizationToken: string; fileName: string; } interface CreatePayment { amount: number; currency: string; organizationId: string; } interface CreateCheckoutSession { orgId: string; planId: string; } interface Payment { id: string; amount: number; currency: string; status: PaymentStatusEnum; stripeInvoiceUrl: string; stripeInvoiceId: string; stripeCustomerId: string; organizationId: string; createdAt: Date; updatedAt: Date; } /** * DTO for Stripe configuration. */ type StripeConfig = { publishableKey: string; }; /** * DTO for billing session response. */ type BillingSessionResponse = { sessionUrl: string; }; /** * DTO for billing session response. */ type WebhookMessage = { received: boolean; }; type ChangeSubscription = { success: boolean; message: string; }; /** * Represents an audit log. */ interface AuditLog { _id: string; action: string; performedByUserEmail: string; performedByUserId: string; ipAddress: string; organizationId: string; details?: Record<string, unknown>; createdAt: Date; } interface JwtPayload { userId: string; email: string; } interface JwtResponse { accessToken: string; tokenType: string; } interface LoginEmail { email: string; } /** * Response type for login. */ type LoginResponse = { accessToken: string; }; interface ChatMessage { role: 'user' | 'ai'; content: string; createdAt: Date; } interface ChatRequest { message: string; orgId: string; } interface ChatResponse { message: string; } declare enum ApplicationEvent { CREATE_CAMPAIGN = "create_campaign", CREATE_COMMISSION_STRUCTURE = "create_commission_structure", CREATE_TRACKING = "create_tracking", MAIL_SEND = "mail_send", DELETE_AFFILIATE = "delete_affiliate", ACTIVATE_AFFILIATE = "activate_affiliate", INCREMENT_AFFILIATELINK_CLICK = "increment_affiliatelink_click", PAYMENT_EVENT = "payment_event" } declare enum ApplicationQueue { AFFILIATION_QUEUE = "affiliation_queue", COMMISSION_QUEUE = "commission_queue", TRACKING_QUEUE = "tracking_queue", MAIL_QUEUE = "mail_queue", PAYMENT_QUEUE = "payment_queue" } declare enum ApplicationEventService { AFFILIATION_SERVICE = "affiliation_service", COMMISSION_SERVICE = "commission_service", TRACKING_SERVICE = "tracking_service", MAIL_SERVICE = "mail_service", PAYMENT_SERVICE = "payment_service" } declare class Ref247AffiliateSDK { private apiUrl; private apiKey?; private apiSecret?; private api; private constructor(); static init(apiUrl?: string, apiKey?: string, apiSecret?: string): Ref247AffiliateSDK; getApiInstance(): AxiosInstance; setBearer(token: string): void; validateMagicToken(token: string): Promise<LoginResponse>; loginByMagicLink(email: string, turnstileToken: string): Promise<void>; register(firstName: string, lastName: string, email: string, turnstileToken: string): Promise<LoginResponse>; getRoles(): Promise<Role[]>; getMe(): Promise<User>; getUserAffiliationsByOrg(orgId: string): Promise<Affiliation>; updateUser(userId: string, updateData: UpdateUser): Promise<User>; addUserToOrganization(organizationId: string, payload: AddUserToOrganization): Promise<Organization>; updateUserRole(organizationId: string, userId: string, roleId: string): Promise<UserOrganization>; enterpriseRequest(orgId: string): Promise<void>; deleteUserFromOrganization(organizationId: string, userId: string): Promise<void>; getUsersFromOrganization(organizationId: string, page?: number, take?: number, search?: string, orderBy?: string, order?: 'ASC' | 'DESC', withDeleted?: boolean): Promise<Page<ListUser>>; getOrganizations(): Promise<UserOrganization[]>; createOrganization(name: string, userId: string): Promise<Organization>; updateOrganization(organizationId: string, updateData: Partial<UpdateOrganization>): Promise<Organization>; getOrganizationTheme(organizationId: string): Promise<OrgTheme>; getOrganizationCurrency(organizationId: string): Promise<OrganizationCurrency[]>; addOrganizationCurrency(organizationId: string, name: string): Promise<OrganizationCurrency>; updateOrganizationCurrency(organizationId: string, id: string, name: string): Promise<OrganizationCurrency>; removeOrganizationCurrency(organizationId: string, id: string): Promise<string>; getOrganizationPlan(orgId: string): Promise<OrganizationPlan>; getPricingPlans(): Promise<OrganizationPlan[]>; getPricingPlan(planId: string): Promise<OrganizationPlan>; getOrganizationEventTypes(organizationId: string): Promise<OrganizationEventType[]>; addOrganizationEventType(organizationId: string, name: string): Promise<OrganizationEventType>; updateOrganizationEventType(organizationId: string, id: string, name: string): Promise<OrganizationEventType>; removeOrganizationEventType(organizationId: string, id: string): Promise<string>; getOrganizationEnabledIntegrations(organizationId: string): Promise<IntegrationTypeEnum[]>; getOrganizationIntegrations(organizationId: string): Promise<OrganizationIntegration[]>; addOrganizationIntegration(organizationId: string, integration: CreateOrganizationIntegration): Promise<OrganizationIntegration>; removeOrganizationIntegration(organizationId: string, id: string): Promise<void>; getAffiliates(organizationId: string, page?: number, take?: number, search?: string, orderBy?: string, order?: 'ASC' | 'DESC', withDeleted?: boolean): Promise<Page<AffiliationList>>; getAffiliatesByIds(orgId: string, affiliateIds: string[]): Promise<AffiliateBasicInfo[]>; createAffiliate(affiliateData: CreateAffiliate): Promise<Affiliation>; addCampaignToAffiliate(affiliateId: string, campaignId: string): Promise<Affiliation>; removeCampaignToAffiliate(affiliateId: string, campaignId: string): Promise<Affiliation>; getAffiliate(affiliationId: string): Promise<Affiliation>; getAffiliateReferrals(affiliationId: string, page?: number, take?: number, search?: string, orderBy?: string, order?: 'ASC' | 'DESC', withDeleted?: boolean): Promise<Page<Affiliation>>; getAffiliateCommissionsGenerated(affiliationId: string, page?: number, take?: number, search?: string, orderBy?: string, order?: 'ASC' | 'DESC'): Promise<Page<Commission>>; getAffiliateCommissionsGained(affiliationId: string, page?: number, take?: number, search?: string, orderBy?: string, order?: 'ASC' | 'DESC'): Promise<Page<Commission>>; getAffiliatesByAffiliateId(affiliationId: string, page?: number, take?: number, search?: string, orderBy?: string, order?: 'ASC' | 'DESC', withDeleted?: boolean): Promise<Page<AffiliationGenericList>>; updateAffiliate(affiliationId: string, updateData: UpdateAffiliate): Promise<Affiliation>; getAffiliateLinkById(affiliateLinkId: string): Promise<AffiliateLink>; getAffiliateLinkByUri(affiliateLinkUri: string): Promise<AffiliateLink>; createAffiliateLink(affiliateData: CreateAffiliateLink): Promise<AffiliateLink>; deleteAffiliateLink(affiliateLinkId: string): Promise<void>; getAllAffiliateLinksOfAffiliate(affiliateId: string, withDeleted?: boolean, page?: number, take?: number, search?: string, orderBy?: string, order?: 'ASC' | 'DESC'): Promise<Page<AffiliateLink>>; getAllAffiliateLinksOfOrganization(orgId: string, withDeleted?: boolean, page?: number, take?: number, search?: string, orderBy?: string, order?: 'ASC' | 'DESC'): Promise<Page<AffiliateLink>>; createCampaign(campaignData: CreateCampaign): Promise<Campaign>; getAllCampaignsOfOrganization(orgId: string, withDeleted?: boolean): Promise<Campaign[]>; getCampaignsByIds(orgId: string, campaignIds: string[]): Promise<Campaign[]>; updateCampaign(id: string, campaignData: Partial<UpdateCampaign>): Promise<Campaign>; updateCampaignAssets(id: string, campaignData: UpdateCampaignAssets): Promise<Campaign>; deleteCampaign(id: string): Promise<void>; getCommissionStructuresOfOrganization(orgId: string, withDeleted?: boolean): Promise<CommissionStructure[]>; getCommissionStructure(commissionStructureId: string): Promise<CommissionStructure>; addCommissionStructureToCampaign(commissionStructureId: string, campaignId: string): Promise<Campaign>; removeCommissionStructureToCampaign(commissionStructureId: string, campaignId: string): Promise<Campaign>; addCommissionStructure(commissionStructureData: CreateCommissionStructure): Promise<CommissionStructure>; deleteCommissionStructure(commissionStructureId: string): Promise<void>; updateCommissionStructure(id: string, updateData: UpdateCommissionStructure): Promise<CommissionStructure>; getCommissionRule(commissionRuleId: string): Promise<CommissionRule>; deleteCommissionRule(commissionRuleId: string): Promise<void>; getCommissionRulesOfcommissionStructure(commissionStructureId: string, withDeleted?: boolean): Promise<CommissionRule[]>; addCommissionRule(commissionRuleData: CreateCommissionRule): Promise<CommissionRule>; updateCommissionRule(id: string, updateData: UpdateCommissionRule): Promise<CommissionRule>; getAffiliateCommissionsChartData(affiliateId: string, startDate?: Date, endDate?: Date): Promise<CommissionChartData>; getAffiliateReferralsChartData(affiliateId: string, startDate?: Date, endDate?: Date): Promise<LineData[]>; getOrgReferralsChartData(orgId: string, startDate?: Date, endDate?: Date): Promise<LineData[]>; getAffiliateStats(affiliateId: string): Promise<AffiliateStats>; getOrganizationAffiliationStats(orgId: string): Promise<OrganizationAffiliateStats>; getOrganizationCommissionStats(orgId: string): Promise<CommissionSummary[]>; getOrganizationGenericStats(orgId: string): Promise<OrgGenericStats>; getOrganizationPrivateStats(orgId: string): Promise<OrgPrivateStats>; getOrgCommissionsChartData(orgId: string, startDate?: Date, endDate?: Date): Promise<OrgCommissionChartData>; createApiKey(organizationId: string, data: CreateApiKey): Promise<ApiKey>; listApiKeysOfOrganization(organizationId: string): Promise<ApiKey[]>; listApiKeysOfUserAndOrganizationId(userId: string, organizationId: string): Promise<ApiKey[]>; revokeApiKey(organizationId: string, apiKeyId: string): Promise<void>; getOrganizationSignedUrl(orgId: string): Promise<SignedUrlResponse>; getPublicSignedUrl(orgId: string): Promise<SignedUrlResponse>; getUploadUrlOrganization(uploadRequest: UploadRequestOrganization): Promise<UploadResponse>; getUploadUrlUser(uploadRequest: UploadRequestUser): Promise<UploadResponse>; createCheckoutSession(checkoutData: CreateCheckoutSession): Promise<BillingSessionResponse>; createBillingSession(checkoutData: CreateCheckoutSession): Promise<BillingSessionResponse>; changeSubscription(checkoutData: CreateCheckoutSession): Promise<{ success: boolean; message: string; }>; getPaymentsByOrganization(orgId: string): Promise<Payment[]>; getPaymentsPendingByOrganization(orgId: string): Promise<Payment[]>; getAuditLogsByOrganizationId(orgId: string, page?: number, take?: number, search?: string, orderBy?: string, order?: 'ASC' | 'DESC', startDate?: Date, endDate?: Date): Promise<Page<AuditLog>>; getOrganizationCommissions(orgId: string, page?: number, take?: number, search?: string, orderBy?: string, order?: 'ASC' | 'DESC', status?: CommissionStatusEnum): Promise<Page<Commission>>; getOrganizationCommissionsByAffiliate(orgId: string, page?: number, take?: number, search?: string, orderBy?: string, order?: 'ASC' | 'DESC', status?: CommissionStatusEnum): Promise<Page<CommissionGroup>>; updateCommissionsStatus(orgId: string, commissionIds: string[], status: CommissionStatusEnum): Promise<Commission[]>; updatePendingCommissionsStatusOfAffiliate(affiliationId: string, status: CommissionStatusEnum, currencyId: string): Promise<Commission[]>; getOrganizationReferralActions(orgId: string, page: number | undefined, take: number | undefined, search: string | undefined, orderBy: string | undefined, order: "ASC" | "DESC" | undefined, isProcessed: boolean): Promise<Page<ReferralAction>>; deleteReferralAction(id: string): Promise<void>; createReferralAction(referralActionDatas: CreateReferralAction[]): Promise<Message>; chat(chatRequest: ChatRequest): Promise<ChatResponse>; getAiHistory(orgId: string): Promise<ChatMessage[]>; clearAiHistory(orgId: string): Promise<void>; } export { ApplicationEvent, ApplicationEventService, ApplicationQueue, CommissionStatusEnum, ConditionOperatorEnum, FileTypeEnum, IntegrationTypeEnum, OrderEnum, OrgCurrencyEnum, OrgEventTypeEnum, OrganizationPlanEnum, PaymentStatusEnum, Ref247AffiliateSDK, RoleEnum, roleToRoleEnum, validateConditionOperator }; export type { AddUserToOrganization, AffiliateBasicInfo, AffiliateLink, AffiliateStats, Affiliation, AffiliationGenericList, AffiliationList, ApiKey, ApiKeyMe, AuditLog, BillingSessionResponse, Campaign, ChangeSubscription, ChatMessage, ChatRequest, ChatResponse, Commission, CommissionChartData, CommissionGroup, CommissionRule, CommissionRuleMetaData, CommissionStructure, CommissionSummary, CreateAffiliate, CreateAffiliateLink, CreateApiKey, CreateCampaign, CreateCheckoutSession, CreateCommission, CreateCommissionRule, CreateCommissionStructure, CreateCommissionStructureAndRuleEvent, CreateOrganization, CreateOrganizationIntegration, CreatePayment, CreateReferralAction, EventAffiliate, IncrementAffiliateLink, JwtPayload, JwtResponse, LineData, ListUser, LoginEmail, LoginResponse, Message, OrgCommissionChartData, OrgGenericStats, OrgPrivateStats, OrgTheme, Organization, OrganizationAffiliateStats, OrganizationCurrency, OrganizationEventType, OrganizationIntegration, OrganizationPlan, Page, PageMeta, PageMetaParameters, PageOptions, Payment, ReferralAction, RevokeApiKey, Role, SignedUrlResponse, StripeConfig, UpdateAffiliate, UpdateCampaign, UpdateCampaignAssets, UpdateCommissionRule, UpdateCommissionStructure, UpdateOrganization, UpdateParent, UpdateUser, UploadRequestOrganization, UploadRequestUser, UploadResponse, User, UserOrganization, UserRoleStats, WebhookMessage };