type SignupMemberEmailPasswordParams = {
    email: string;
    password: string;
    customFields?: Record<string, any>;
    metaData?: Record<string, any>;
    plans?: {
        planId: string;
    }[];
    captchaToken?: string;
    inviteToken?: string;
};
type JoinTeamParams = {
    inviteToken: string;
};
type GetTeamParams = {
    teamId: string;
};
type RemoveMemberFromTeamParams = {
    teamId: string;
    memberId: string;
};
type GenerateInviteTokenParams = {
    teamId: string;
};
type GetPostsParams = {
    channelKey: string;
    order?: "newest" | "oldest";
    after?: string;
    limit?: number;
};
type GetThreadsParams = {
    postId: string;
    order?: "newest" | "oldest";
    after?: string;
    limit?: number;
};
type CreatePostParams = {
    channelKey: string;
    content: string;
};
type UpdatePostParams = {
    postId: string;
    content: string;
};
type DeletePostParams = {
    postId: string;
};
type PostVoteParams = {
    postId: string;
    vote: "UP" | "DOWN" | "NONE";
};
type ThreadVoteParams = {
    threadId: string;
    vote: "UP" | "DOWN" | "NONE";
};
type CreateThreadParams = {
    postId: string;
    content: string;
};
type UpdateThreadParams = {
    threadId: string;
    content: string;
};
type DeleteThreadParams = {
    threadId: string;
};
type UpdateMemberProfileImageParams = {
    profileImage: File;
};
type GetSecureContentParams = {
    contentId: string;
};
type SetPasswordParams = {
    password: string;
};
type SignupWithProviderParams = {
    provider: string;
    customFields?: Record<string, any>;
    plans?: {
        planId: string;
    }[];
    allowLogin?: boolean;
};
type LoginWithProviderParams = {
    provider: string;
    allowSignup?: boolean;
};
type LoginMemberPasswordlessParams = {
    passwordlessToken: string;
    email: string;
};
type SendMemberLoginPasswordlessEmailParams = {
    email: string;
};
type SignupMemberAuthProviderParams = {
    code: string;
    provider: "GOOGLE" | "FACEBOOK";
    planId?: string;
    customFields?: Record<string, any>;
    metaData?: Record<string, any>;
    plans?: {
        planId: string;
    }[];
    payment?: {
        stripe?: {
            paymentMethodId: string;
        };
    };
};
type LoginMemberEmailPasswordParams = {
    email: string;
    password: string;
};
type UpdateMemberParams = {
    customFields?: Record<string, any>;
};
type UpdateMemberAuthParams = {
    email?: string;
    oldPassword?: string;
    newPassword?: string;
};
type PurchasePlansParams = {
    plans: {
        planId: string;
        priceId?: string;
    }[];
    payment: {
        cardId?: string;
        stripe?: {
            paymentMethodId: string;
        };
    };
};
type AddPlanParams = {
    planId: string;
};
type PurchasePlansWithCheckoutParams = {
    priceId: string;
    couponId?: string;
    cancelUrl?: string;
    successUrl?: string;
    autoRedirect?: boolean;
    metadataForCheckout?: object;
};
type LaunchStripeCustomerPortalParams = {
    priceIds?: string[];
    configuration?: object;
    returnUrl?: string;
    autoRedirect?: boolean;
};
type OpenStripeCustomerPortalParams = {
    configuration?: object;
    returnUrl?: string;
    autoRedirect?: boolean;
};
type RemovePlanParams = {
    planId: string;
};
type CancelPlanParams = {
    planConnectionId: string;
};
type AddMemberCardParams = {
    stripePaymentMethodId: string;
    default?: boolean;
};
type UpdateDefaultCardParams = {
    cardId: string;
};
type UpdatePlanPaymentParams = {
    planConnectionId: string;
    cardId: string;
};
type GetMemberReceiptsParams = {
    first?: number;
    after?: string;
    order?: "ASC" | "DESC";
};
type GetMemberInvoicesParams = {
    first?: number;
    after?: string;
    order?: "ASC" | "DESC";
};
type UpdateMemberJSONParams = {
    json: object;
};
type GetMemberPurchasesParams = {
    expandPlan?: boolean;
    expandPrice?: boolean;
    expandCard?: boolean;
    expandSubscription?: boolean;
};
type GetPlanParams = {
    planId: string;
};
type GetPlansParams = {
    status?: "ALL" | "ACTIVE" | "INACTIVE";
};
type SendMemberResetPasswordEmailParams = {
    email: string;
};
type ResetMemberPasswordParams = {
    token: string;
    newPassword: string;
};
type ReplacePlanParams = {
    planConnectionId: string;
    newPlanId?: string;
    priceId?: string;
    payment?: {
        cardId?: string;
        stripe?: {
            paymentMethodId: string;
        };
    };
};
type GetAuthenticationClientSecretParams = {
    planConnectionId: string;
};
type GetTotalCheckoutAmountParams = {
    priceIds: string[];
};
type GetDataRecordsParams = {
    tableKey: string;
    createdAfter?: string;
    createdBefore?: string;
    sortBy?: string;
    sortDirection?: 'ASC' | 'DESC';
    limit?: number;
    after?: string;
};
type CreateDataRecordParams = {
    table: string;
    data: Record<string, any>;
    memberId?: string;
};
type GetDataRecordParams = {
    table: string;
    recordId: string;
};
type ReferenceSelector = {
    id: string;
};
type ReferenceOperation = {
    connect?: ReferenceSelector | ReferenceSelector[];
    disconnect?: ReferenceSelector | ReferenceSelector[];
};
type MemberReferenceSelector = {
    self: true;
};
type MemberReferenceOperation = {
    connect?: MemberReferenceSelector | MemberReferenceSelector[];
    disconnect?: MemberReferenceSelector | MemberReferenceSelector[];
};
type UpdateDataRecordParams = {
    recordId: string;
    data: Record<string, any>;
};
type DeleteDataRecordParams = {
    recordId: string;
};
type GetDataTableParams = {
    tableKey: string;
};
type WhereOperators = {
    equals?: any;
    not?: any;
    in?: any[];
    notIn?: any[];
    lt?: any;
    lte?: any;
    gt?: any;
    gte?: any;
    contains?: string;
    startsWith?: string;
    endsWith?: string;
    search?: string;
    mode?: 'insensitive' | 'default';
};
type WhereClause = {
    [field: string]: any | WhereOperators;
    AND?: WhereClause[];
    OR?: WhereClause[];
    NOT?: WhereClause;
};
type CountClause = {
    select: {
        [relationName: string]: boolean;
    };
};
type SelectClause = {
    [fieldName: string]: boolean | CountClause;
};
type IncludeClause = {
    [relationName: string]: boolean | {
        where?: WhereClause;
        include?: IncludeClause;
        select?: SelectClause;
        orderBy?: OrderByClause;
        take?: number;
        skip?: number;
    };
    _count?: boolean | CountClause;
};
type OrderByClause = {
    [fieldName: string]: 'asc' | 'desc';
};
type DataRecordsQuery = {
    where?: WhereClause;
    include?: IncludeClause;
    select?: SelectClause;
    orderBy?: OrderByClause;
    take?: number;
    skip?: number;
    after?: string;
    _count?: boolean | CountClause;
};
type QueryDataRecordsParams = {
    table: string;
    query: DataRecordsQuery;
};

export type { AddMemberCardParams, AddPlanParams, CancelPlanParams, CountClause, CreateDataRecordParams, CreatePostParams, CreateThreadParams, DataRecordsQuery, DeleteDataRecordParams, DeletePostParams, DeleteThreadParams, GenerateInviteTokenParams, GetAuthenticationClientSecretParams, GetDataRecordParams, GetDataRecordsParams, GetDataTableParams, GetMemberInvoicesParams, GetMemberPurchasesParams, GetMemberReceiptsParams, GetPlanParams, GetPlansParams, GetPostsParams, GetSecureContentParams, GetTeamParams, GetThreadsParams, GetTotalCheckoutAmountParams, IncludeClause, JoinTeamParams, LaunchStripeCustomerPortalParams, LoginMemberEmailPasswordParams, LoginMemberPasswordlessParams, LoginWithProviderParams, MemberReferenceOperation, MemberReferenceSelector, OpenStripeCustomerPortalParams, OrderByClause, PostVoteParams, PurchasePlansParams, PurchasePlansWithCheckoutParams, QueryDataRecordsParams, ReferenceOperation, ReferenceSelector, RemoveMemberFromTeamParams, RemovePlanParams, ReplacePlanParams, ResetMemberPasswordParams, SelectClause, SendMemberLoginPasswordlessEmailParams, SendMemberResetPasswordEmailParams, SetPasswordParams, SignupMemberAuthProviderParams, SignupMemberEmailPasswordParams, SignupWithProviderParams, ThreadVoteParams, UpdateDataRecordParams, UpdateDefaultCardParams, UpdateMemberAuthParams, UpdateMemberJSONParams, UpdateMemberParams, UpdateMemberProfileImageParams, UpdatePlanPaymentParams, UpdatePostParams, UpdateThreadParams, WhereClause, WhereOperators };
