UNPKG

@whop/api

Version:
13,729 lines 541 kB
import { TypedEmitter } from 'tiny-typed-emitter';
import { OAuth2Config } from '@auth/core/providers';

type Maybe$1<T> = T | null;
type InputMaybe$1<T> = Maybe$1<T>;
type Exact$1<T extends {
    [key: string]: unknown;
}> = {
    [K in keyof T]: T[K];
};
/** All built-in and custom scalars, mapped to their actual values */
interface Scalars$1 {
    ID: {
        input: string;
        output: string;
    };
    String: {
        input: string;
        output: string;
    };
    Boolean: {
        input: boolean;
        output: boolean;
    };
    Int: {
        input: number;
        output: number;
    };
    Float: {
        input: number;
        output: number;
    };
    /**
     * Represents non-fractional signed whole numeric values. Since the value may
     * exceed the size of a 32-bit integer, it's encoded as a string.
     */
    BigInt: {
        input: string;
        output: string;
    };
    /**
     * The `Decimal` scalar type represents signed double-precision fractional
     * values. The Decimal appears in a JSON response as a string to preserve
     * precision.
     */
    Decimal: {
        input: string;
        output: string;
    };
    /** Url to uploaded upload */
    File: {
        input: string;
        output: string;
    };
    /** Represents untyped JSON */
    JSON: {
        input: {
            [key: string]: any;
        };
        output: {
            [key: string]: any;
        };
    };
    /** A number - float or integer */
    Number: {
        input: number;
        output: number;
    };
    /**
     * A hash of requirements. Valid keys: email_required
     * custom_password
     * ownership_of_access_passes
     */
    Requirements: {
        input: Record<string, unknown>;
        output: Record<string, unknown>;
    };
    /** String removes all html tags */
    SanitizedString: {
        input: string;
        output: string;
    };
    /** A float that can be a string */
    StringFloat: {
        input: string | number;
        output: string | number;
    };
    /** A valid timestamp in seconds, transported as an integer */
    Timestamp: {
        input: number;
        output: number;
    };
    /** URL starting with http/https */
    UrlString: {
        input: string;
        output: string;
    };
}
/** Autogenerated input type of AnalyzeAttachment */
interface AnalyzeAttachmentInput$1 {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The ID returned by the direct upload mutation */
    directUploadId: Scalars$1["String"]["input"];
    /** The type of media to analyze */
    mediaType: Media$1;
    /** The parts of the multipart upload */
    multipartParts?: InputMaybe$1<Array<UploadPartInput$1>>;
    /** The ID returned by the direct upload mutation */
    multipartUploadId?: InputMaybe$1<Scalars$1["String"]["input"]>;
}
/** The types of records that an attachment can be attached to */
type AttachableRecords$1 = "abuse_report" | "access_pass" | "app" | "assessment_question" | "automated_messages_config" | "bot" | "bounty" | "bounty_submission" | "competition_prize" | "content_reward_campaign" | "content_reward_submission" | "course_lesson" | "dispute" | "dms_post" | "experience" | "forum_post" | "resolution_event_upload" | "review" | "review_report" | "user";
/** The available types for an assessment question */
type CoursesAssessmentQuestionTypes$1 = 
/** Multiple choice */
"multiple_choice"
/** Multiple select */
 | "multiple_select"
/** Short answer */
 | "short_answer"
/** True false */
 | "true_false";
/** Autogenerated input type of CreateAssessmentQuestion */
interface CreateAssessmentQuestionInput$1 {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The correct answer to the assessment question */
    correctAnswer: Scalars$1["String"]["input"];
    /** The ID of the lesson to create the assessment question in */
    lessonId: Scalars$1["ID"]["input"];
    /** The text of the question being asked */
    questionText: Scalars$1["String"]["input"];
    /** The type of the assessment question */
    questionType: CoursesAssessmentQuestionTypes$1;
}
/** Autogenerated input type of CreateChapter */
interface CreateChapterInput$1 {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The ID of the course to create the chapter in */
    courseId: Scalars$1["ID"]["input"];
    /** The title of the chapter */
    title?: InputMaybe$1<Scalars$1["String"]["input"]>;
}
/** Autogenerated input type of CreateCourse */
interface CreateCourseInput$1 {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The cover image URL of the course */
    coverImage?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The ID of the experience to create the course in */
    experienceId: Scalars$1["ID"]["input"];
    /** The tagline of the course */
    tagline?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The title of the course */
    title: Scalars$1["String"]["input"];
}
/** Autogenerated input type of CreateLesson */
interface CreateLessonInput$1 {
    /** The ID of the chapter to create the lesson in */
    chapterId: Scalars$1["ID"]["input"];
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The content of the lesson */
    content?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** Days from course start until unlock */
    daysFromCourseStartUntilUnlock?: InputMaybe$1<Scalars$1["Int"]["input"]>;
    /** The type of the lesson */
    lessonType: LessonTypes$1;
    /** The title of the lesson */
    title?: InputMaybe$1<Scalars$1["String"]["input"]>;
}
/** The available currencies on the platform */
type Currencies$1 = "aed" | "all" | "amd" | "ape" | "ars" | "aud" | "bam" | "bgn" | "bhd" | "bob" | "brl" | "bsd" | "btc" | "cad" | "chf" | "clp" | "cop" | "crc" | "czk" | "dkk" | "dop" | "dzd" | "egp" | "etb" | "eth" | "eur" | "gbp" | "ghs" | "gmd" | "gtq" | "gyd" | "hkd" | "huf" | "idr" | "ils" | "inr" | "jmd" | "jod" | "jpy" | "kes" | "khr" | "krw" | "kwd" | "lkr" | "mad" | "mdl" | "mga" | "mkd" | "mnt" | "mop" | "mur" | "mxn" | "myr" | "nad" | "ngn" | "nok" | "nzd" | "omr" | "pen" | "php" | "pkr" | "pln" | "pyg" | "qar" | "ron" | "rsd" | "rub" | "rwf" | "sar" | "sek" | "sgd" | "thb" | "tnd" | "try" | "ttd" | "twd" | "tzs" | "usd" | "uyu" | "uzs" | "vnd" | "xcd" | "xof" | "zar";
/** Autogenerated input type of DeleteAssessmentQuestionImage */
interface DeleteAssessmentQuestionImageInput$1 {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The ID of the attachment to delete */
    id: Scalars$1["ID"]["input"];
}
/** Autogenerated input type of DeleteChapter */
interface DeleteChapterInput$1 {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The ID of the chapter to delete */
    id: Scalars$1["ID"]["input"];
}
/** Autogenerated input type of DeleteLessonAttachment */
interface DeleteLessonAttachmentInput$1 {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The ID of the attachment to delete */
    id: Scalars$1["ID"]["input"];
}
/** Autogenerated input type of DeleteLesson */
interface DeleteLessonInput$1 {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The ID of the lesson to delete */
    id: Scalars$1["ID"]["input"];
}
/** Autogenerated input type of DirectUpload */
interface DirectUploadInput$1 {
    /** The size of the file in bytes */
    byteSize?: InputMaybe$1<Scalars$1["Int"]["input"]>;
    /** The size of the file in bytes */
    byteSizeV2?: InputMaybe$1<Scalars$1["BigInt"]["input"]>;
    /** The checksum of the file */
    checksum: Scalars$1["String"]["input"];
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The content type of the file */
    contentType?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The filename of the file */
    filename: Scalars$1["String"]["input"];
    /** The metadata of the file */
    metadata?: InputMaybe$1<Scalars$1["JSON"]["input"]>;
    /** Whether or not to use multipart upload. The file must be larger than 5MB */
    multipart?: InputMaybe$1<Scalars$1["Boolean"]["input"]>;
    /** The type of record to attach the file to */
    record: AttachableRecords$1;
}
/** The direction of the sort. */
type Direction$1 = "asc" | "desc";
/** The types of post */
type DmsPostTypes$1 = "automated" | "regular" | "system";
/** The available languages for a course */
type Languages$1 = 
/** Bg */
"bg"
/** Ca */
 | "ca"
/** Cs */
 | "cs"
/** Da */
 | "da"
/** De */
 | "de"
/** El */
 | "el"
/** En */
 | "en"
/** Es */
 | "es"
/** Fi */
 | "fi"
/** Fr */
 | "fr"
/** Hr */
 | "hr"
/** It */
 | "it"
/** Nl */
 | "nl"
/** No */
 | "no"
/** Pl */
 | "pl"
/** Pt */
 | "pt"
/** Ro */
 | "ro"
/** Ru */
 | "ru"
/** Sk */
 | "sk"
/** Sv */
 | "sv"
/** Tr */
 | "tr"
/** Uk */
 | "uk";
/** The available types for a lesson */
type LessonTypes$1 = 
/** Knowledge check */
"knowledge_check"
/** Multi */
 | "multi"
/** Pdf */
 | "pdf"
/** Quiz */
 | "quiz"
/** Text */
 | "text"
/** Video */
 | "video";
/** The available visibilities for a lesson. Determines how / whether a lesson is visible to users. */
type LessonVisibilities$1 = 
/** Hidden */
"hidden"
/** Visible */
 | "visible";
/** Autogenerated input type of MarkLessonAsCompleted */
interface MarkLessonAsCompletedInput$1 {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The ID of the lesson to mark as completed */
    lessonId: Scalars$1["ID"]["input"];
}
type Media$1 = "audio" | "image" | "other" | "video";
/** Autogenerated input type of MoveCourse */
interface MoveCourseInput$1 {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The ID of the course to move */
    courseId: Scalars$1["ID"]["input"];
    /** The experience to move the course into */
    destinationExperienceId: Scalars$1["ID"]["input"];
}
/** Mux asset statuses */
type MuxAssetStatuses$1 = 
/** Created */
"created"
/** Ready */
 | "ready"
/** Uploading */
 | "uploading";
/** The type of plan that can be attached to an access pass */
type PlanTypes$1 = 
/** One Time */
"one_time"
/** Renewal */
 | "renewal";
/** The methods of how a plan can be released (including raffles and waitlists). */
type ReleaseMethod$1 = 
/** Buy Now */
"buy_now"
/** Raffle */
 | "raffle"
/** Waitlist */
 | "waitlist";
/** Autogenerated input type of UpdateChapter */
interface UpdateChapterInput$1 {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The ID of the chapter to update */
    id: Scalars$1["ID"]["input"];
    /** The title of the chapter */
    title: Scalars$1["String"]["input"];
}
/** Autogenerated input type of UpdateChapterOrder */
interface UpdateChapterOrderInput$1 {
    /** The ID of the chapter to place this chapter below */
    belowChapterId?: InputMaybe$1<Scalars$1["ID"]["input"]>;
    /** The ID of the chapter to reorder */
    chapterId: Scalars$1["ID"]["input"];
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
}
/** Autogenerated input type of UpdateLesson */
interface UpdateLessonInput$1 {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The content of the lesson */
    content?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** Days from course start until unlock */
    daysFromCourseStartUntilUnlock?: InputMaybe$1<Scalars$1["Int"]["input"]>;
    /** The ID of the lesson to update */
    id: Scalars$1["ID"]["input"];
    /** The type of the lesson */
    lessonType?: InputMaybe$1<LessonTypes$1>;
    /** The ID of the Mux asset to attach to this lesson */
    muxAssetId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The title of the lesson */
    title?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** Determines how / whether this lesson is visible to users. */
    visibility?: InputMaybe$1<LessonVisibilities$1>;
}
/** Autogenerated input type of UpdateLessonOrder */
interface UpdateLessonOrderInput$1 {
    /** The ID of the lesson to place this lesson below */
    belowLessonId?: InputMaybe$1<Scalars$1["ID"]["input"]>;
    /** The ID of the chapter to move the lesson to */
    chapterId: Scalars$1["ID"]["input"];
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe$1<Scalars$1["String"]["input"]>;
    /** The ID of the lesson to reorder */
    lessonId: Scalars$1["ID"]["input"];
}
interface UploadPartInput$1 {
    /** The ETag of the part */
    etag: Scalars$1["String"]["input"];
    /** The part number of the part */
    partNumber: Scalars$1["Int"]["input"];
}
/** The different types of upsells an experience can have. */
type UpsellTypes$1 = 
/** After Checkout */
"after_checkout"
/** Before Checkout */
 | "before_checkout"
/** Only In Whop */
 | "only_in_whop";
/** Visibility of a resource */
type Visibility$1 = 
/** Archived */
"archived"
/** Hidden */
 | "hidden"
/** Quick Link */
 | "quick_link"
/** Visible */
 | "visible";
type Attachment_AudioAttachment_Fragment$1 = {
    __typename: "AudioAttachment";
    duration?: number | null;
    waveformUrl?: string | null;
    id: string;
    signedId?: string | null;
    analyzed: boolean;
    byteSizeV2?: string | null;
    filename?: string | null;
    contentType?: string | null;
    source: {
        __typename?: "AttachmentSource";
        url: string;
    };
};
type Attachment_ImageAttachment_Fragment$1 = {
    __typename: "ImageAttachment";
    height?: number | null;
    width?: number | null;
    blurhash?: string | null;
    aspectRatio?: number | null;
    id: string;
    signedId?: string | null;
    analyzed: boolean;
    byteSizeV2?: string | null;
    filename?: string | null;
    contentType?: string | null;
    source: {
        __typename?: "AttachmentSource";
        url: string;
    };
};
type Attachment_OtherAttachment_Fragment$1 = {
    __typename: "OtherAttachment";
    id: string;
    signedId?: string | null;
    analyzed: boolean;
    byteSizeV2?: string | null;
    filename?: string | null;
    contentType?: string | null;
    source: {
        __typename?: "AttachmentSource";
        url: string;
    };
};
type Attachment_VideoAttachment_Fragment$1 = {
    __typename: "VideoAttachment";
    height?: number | null;
    width?: number | null;
    duration?: number | null;
    aspectRatio?: number | null;
    id: string;
    signedId?: string | null;
    analyzed: boolean;
    byteSizeV2?: string | null;
    filename?: string | null;
    contentType?: string | null;
    preview: {
        __typename?: "AttachmentSource";
        url: string;
    };
    source: {
        __typename?: "AttachmentSource";
        url: string;
    };
};
type AttachmentFragment$1 = Attachment_AudioAttachment_Fragment$1 | Attachment_ImageAttachment_Fragment$1 | Attachment_OtherAttachment_Fragment$1 | Attachment_VideoAttachment_Fragment$1;
type GetAccessPassQueryVariables$1 = Exact$1<{
    accessPassId: Scalars$1["ID"]["input"];
}>;
type GetAccessPassQuery$1 = {
    __typename?: "PublicQuery";
    accessPass: {
        __typename?: "PublicAccessPass";
        headline?: string | null;
        reviewsAverage: number;
        id: string;
        title: string;
        shortenedDescription?: string | null;
        verified: boolean;
        visibility: Visibility$1;
        route: string;
        activeUsersCount: number;
        bannerImage?: {
            __typename?: "AudioAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "ImageAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "OtherAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "VideoAttachment";
            sourceUrl?: string | null;
        } | null;
        company: {
            __typename?: "PublicCompany";
            id: string;
            title: string;
        };
        ownerUser: {
            __typename?: "PublicProfileUser";
            id: string;
            name?: string | null;
            username: string;
            phoneVerified: boolean;
            city?: string | null;
            country?: string | null;
            profilePicture?: {
                __typename?: "AudioAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "ImageAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "OtherAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "VideoAttachment";
                sourceUrl?: string | null;
            } | null;
        };
        galleryImages: {
            __typename?: "AttachmentInterfaceConnection";
            nodes?: Array<{
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null> | null;
        };
        logo?: {
            __typename?: "AudioAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "ImageAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "OtherAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "VideoAttachment";
            sourceUrl?: string | null;
        } | null;
    };
};
type GetAttachmentQueryVariables$1 = Exact$1<{
    id: Scalars$1["ID"]["input"];
}>;
type GetAttachmentQuery$1 = {
    __typename?: "PublicQuery";
    attachment: {
        __typename: "AudioAttachment";
        duration?: number | null;
        waveformUrl?: string | null;
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | {
        __typename: "ImageAttachment";
        height?: number | null;
        width?: number | null;
        blurhash?: string | null;
        aspectRatio?: number | null;
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | {
        __typename: "OtherAttachment";
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | {
        __typename: "VideoAttachment";
        height?: number | null;
        width?: number | null;
        duration?: number | null;
        aspectRatio?: number | null;
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        preview: {
            __typename?: "AttachmentSource";
            url: string;
        };
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    };
};
type ProcessAttachmentMutationVariables$1 = Exact$1<{
    input: AnalyzeAttachmentInput$1;
}>;
type ProcessAttachmentMutation$1 = {
    __typename?: "PublicMutation";
    mediaAnalyzeAttachment?: boolean | null;
};
type UploadMediaMutationVariables$1 = Exact$1<{
    input: DirectUploadInput$1;
}>;
type UploadMediaMutation$1 = {
    __typename?: "PublicMutation";
    mediaDirectUpload?: {
        __typename?: "DirectUpload";
        id: string;
        headers: {
            [key: string]: any;
        };
        uploadUrl?: string | null;
        multipartUploadId?: string | null;
        multipartUploadUrls?: Array<{
            __typename?: "MultipartUrl";
            partNumber: number;
            url: string;
        }> | null;
    } | null;
};
type CreateAssessmentQuestionMutationVariables$1 = Exact$1<{
    input: CreateAssessmentQuestionInput$1;
}>;
type CreateAssessmentQuestionMutation$1 = {
    __typename?: "PublicMutation";
    createAssessmentQuestion?: {
        __typename?: "AssessmentQuestion";
        id: string;
        correctAnswer: string;
        order: number;
        questionText: string;
        questionType: CoursesAssessmentQuestionTypes$1;
        image?: {
            __typename: "AudioAttachment";
            duration?: number | null;
            waveformUrl?: string | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "ImageAttachment";
            height?: number | null;
            width?: number | null;
            blurhash?: string | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "OtherAttachment";
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "VideoAttachment";
            height?: number | null;
            width?: number | null;
            duration?: number | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            preview: {
                __typename?: "AttachmentSource";
                url: string;
            };
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | null;
        options: Array<{
            __typename?: "AssessmentQuestionOption";
            id: string;
            isCorrect: boolean;
            optionText: string;
            order: number;
        }>;
    } | null;
};
type CreateChapterMutationVariables$1 = Exact$1<{
    input: CreateChapterInput$1;
}>;
type CreateChapterMutation$1 = {
    __typename?: "PublicMutation";
    createChapter?: {
        __typename?: "Chapter";
        id: string;
        title: string;
        order: number;
        lessons: Array<{
            __typename?: "Lesson";
            id: string;
            lessonType: LessonTypes$1;
            title: string;
            order: number;
            visibility: LessonVisibilities$1;
            daysFromCourseStartUntilUnlock?: number | null;
            content?: string | null;
            muxAsset?: {
                __typename?: "MuxAsset";
                id: string;
                muxAssetId?: string | null;
                playbackId?: string | null;
                signedPlaybackId?: string | null;
                signedThumbnailPlaybackToken?: string | null;
                signedVideoPlaybackToken?: string | null;
                signedStoryboardPlaybackToken?: string | null;
                durationSeconds?: number | null;
                status: MuxAssetStatuses$1;
                finishedUploadingAt?: number | null;
            } | null;
        }>;
    } | null;
};
type CreateCourseMutationVariables$1 = Exact$1<{
    input: CreateCourseInput$1;
}>;
type CreateCourseMutation$1 = {
    __typename?: "PublicMutation";
    createCourse?: {
        __typename?: "Course";
        certificateAfterCompletionEnabled?: boolean | null;
        coverImage?: string | null;
        description?: string | null;
        id: string;
        language: Languages$1;
        requireCompletingLessonsInOrder: boolean;
        tagline?: string | null;
        title?: string | null;
        videoProtectionEnabled: boolean;
        chapters: Array<{
            __typename?: "Chapter";
            id: string;
            title: string;
            order: number;
            lessons: Array<{
                __typename?: "Lesson";
                id: string;
                lessonType: LessonTypes$1;
                title: string;
                order: number;
                visibility: LessonVisibilities$1;
                daysFromCourseStartUntilUnlock?: number | null;
                content?: string | null;
                muxAsset?: {
                    __typename?: "MuxAsset";
                    id: string;
                    muxAssetId?: string | null;
                    playbackId?: string | null;
                    signedPlaybackId?: string | null;
                    signedThumbnailPlaybackToken?: string | null;
                    signedVideoPlaybackToken?: string | null;
                    signedStoryboardPlaybackToken?: string | null;
                    durationSeconds?: number | null;
                    status: MuxAssetStatuses$1;
                    finishedUploadingAt?: number | null;
                } | null;
            }>;
        }>;
    } | null;
};
type CreateLessonMutationVariables$1 = Exact$1<{
    input: CreateLessonInput$1;
}>;
type CreateLessonMutation$1 = {
    __typename?: "PublicMutation";
    createLesson?: {
        __typename?: "Lesson";
        id: string;
        lessonType: LessonTypes$1;
        title: string;
        order: number;
        visibility: LessonVisibilities$1;
        content?: string | null;
        daysFromCourseStartUntilUnlock?: number | null;
        muxAsset?: {
            __typename?: "MuxAsset";
            id: string;
            muxAssetId?: string | null;
            playbackId?: string | null;
            signedPlaybackId?: string | null;
            signedThumbnailPlaybackToken?: string | null;
            signedVideoPlaybackToken?: string | null;
            signedStoryboardPlaybackToken?: string | null;
            durationSeconds?: number | null;
            status: MuxAssetStatuses$1;
            finishedUploadingAt?: number | null;
        } | null;
        assessmentQuestions: Array<{
            __typename?: "AssessmentQuestion";
            id: string;
            correctAnswer: string;
            order: number;
            questionText: string;
            questionType: CoursesAssessmentQuestionTypes$1;
            image?: {
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null;
            options: Array<{
                __typename?: "AssessmentQuestionOption";
                id: string;
                isCorrect: boolean;
                optionText: string;
                order: number;
            }>;
        }>;
        attachments: {
            __typename?: "AttachmentInterfaceConnection";
            nodes?: Array<{
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null> | null;
        };
        mainPdf?: {
            __typename: "AudioAttachment";
            duration?: number | null;
            waveformUrl?: string | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "ImageAttachment";
            height?: number | null;
            width?: number | null;
            blurhash?: string | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "OtherAttachment";
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "VideoAttachment";
            height?: number | null;
            width?: number | null;
            duration?: number | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            preview: {
                __typename?: "AttachmentSource";
                url: string;
            };
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | null;
    } | null;
};
type DeleteAssessmentQuestionImageMutationVariables$1 = Exact$1<{
    input: DeleteAssessmentQuestionImageInput$1;
}>;
type DeleteAssessmentQuestionImageMutation$1 = {
    __typename?: "PublicMutation";
    deleteAssessmentQuestionImage?: boolean | null;
};
type DeleteChapterMutationVariables$1 = Exact$1<{
    input: DeleteChapterInput$1;
}>;
type DeleteChapterMutation$1 = {
    __typename?: "PublicMutation";
    deleteChapter?: boolean | null;
};
type DeleteLessonAttachmentMutationVariables$1 = Exact$1<{
    input: DeleteLessonAttachmentInput$1;
}>;
type DeleteLessonAttachmentMutation$1 = {
    __typename?: "PublicMutation";
    deleteLessonAttachment?: boolean | null;
};
type DeleteLessonMutationVariables$1 = Exact$1<{
    input: DeleteLessonInput$1;
}>;
type DeleteLessonMutation$1 = {
    __typename?: "PublicMutation";
    deleteLesson?: boolean | null;
};
type GetCourseQueryVariables$1 = Exact$1<{
    courseId: Scalars$1["ID"]["input"];
}>;
type GetCourseQuery$1 = {
    __typename?: "PublicQuery";
    course?: {
        __typename?: "Course";
        certificateAfterCompletionEnabled?: boolean | null;
        coverImage?: string | null;
        description?: string | null;
        id: string;
        language: Languages$1;
        requireCompletingLessonsInOrder: boolean;
        tagline?: string | null;
        title?: string | null;
        videoProtectionEnabled: boolean;
        chapters: Array<{
            __typename?: "Chapter";
            id: string;
            title: string;
            order: number;
            lessons: Array<{
                __typename?: "Lesson";
                id: string;
                lessonType: LessonTypes$1;
                title: string;
                order: number;
                visibility: LessonVisibilities$1;
                daysFromCourseStartUntilUnlock?: number | null;
                content?: string | null;
                muxAsset?: {
                    __typename?: "MuxAsset";
                    id: string;
                    muxAssetId?: string | null;
                    playbackId?: string | null;
                    signedPlaybackId?: string | null;
                    signedThumbnailPlaybackToken?: string | null;
                    signedVideoPlaybackToken?: string | null;
                    signedStoryboardPlaybackToken?: string | null;
                    durationSeconds?: number | null;
                    status: MuxAssetStatuses$1;
                    finishedUploadingAt?: number | null;
                } | null;
            }>;
        }>;
    } | null;
};
type GetLessonQueryVariables$1 = Exact$1<{
    courseId: Scalars$1["ID"]["input"];
    lessonId: Scalars$1["ID"]["input"];
}>;
type GetLessonQuery$1 = {
    __typename?: "PublicQuery";
    course?: {
        __typename?: "Course";
        lesson?: {
            __typename?: "Lesson";
            id: string;
            lessonType: LessonTypes$1;
            title: string;
            order: number;
            visibility: LessonVisibilities$1;
            content?: string | null;
            daysFromCourseStartUntilUnlock?: number | null;
            muxAsset?: {
                __typename?: "MuxAsset";
                id: string;
                muxAssetId?: string | null;
                playbackId?: string | null;
                signedPlaybackId?: string | null;
                signedThumbnailPlaybackToken?: string | null;
                signedVideoPlaybackToken?: string | null;
                signedStoryboardPlaybackToken?: string | null;
                durationSeconds?: number | null;
                status: MuxAssetStatuses$1;
                finishedUploadingAt?: number | null;
            } | null;
            assessmentQuestions: Array<{
                __typename?: "AssessmentQuestion";
                id: string;
                correctAnswer: string;
                order: number;
                questionText: string;
                questionType: CoursesAssessmentQuestionTypes$1;
                image?: {
                    __typename: "AudioAttachment";
                    duration?: number | null;
                    waveformUrl?: string | null;
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | {
                    __typename: "ImageAttachment";
                    height?: number | null;
                    width?: number | null;
                    blurhash?: string | null;
                    aspectRatio?: number | null;
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | {
                    __typename: "OtherAttachment";
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | {
                    __typename: "VideoAttachment";
                    height?: number | null;
                    width?: number | null;
                    duration?: number | null;
                    aspectRatio?: number | null;
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    preview: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | null;
                options: Array<{
                    __typename?: "AssessmentQuestionOption";
                    id: string;
                    isCorrect: boolean;
                    optionText: string;
                    order: number;
                }>;
            }>;
            attachments: {
                __typename?: "AttachmentInterfaceConnection";
                nodes?: Array<{
                    __typename: "AudioAttachment";
                    duration?: number | null;
                    waveformUrl?: string | null;
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | {
                    __typename: "ImageAttachment";
                    height?: number | null;
                    width?: number | null;
                    blurhash?: string | null;
                    aspectRatio?: number | null;
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | {
                    __typename: "OtherAttachment";
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | {
                    __typename: "VideoAttachment";
                    height?: number | null;
                    width?: number | null;
                    duration?: number | null;
                    aspectRatio?: number | null;
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    preview: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | null> | null;
            };
            mainPdf?: {
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null;
        } | null;
    } | null;
};
type GetUserLessonInteractionsQueryVariables$1 = Exact$1<{
    courseId: Scalars$1["ID"]["input"];
}>;
type GetUserLessonInteractionsQuery$1 = {
    __typename?: "PublicQuery";
    course?: {
        __typename?: "Course";
        chapters: Array<{
            __typename?: "Chapter";
            id: string;
            lessons: Array<{
                __typename?: "Lesson";
                id: string;
                lessonInteraction?: {
                    __typename?: "LessonInteraction";
                    id: string;
                    completed: boolean;
                    createdAt: number;
                } | null;
            }>;
        }>;
    } | null;
};
type ListCoursesForCompanyQueryVariables$1 = Exact$1<{
    companyId: Scalars$1["ID"]["input"];
    first?: InputMaybe$1<Scalars$1["Int"]["input"]>;
    after?: InputMaybe$1<Scalars$1["String"]["input"]>;
}>;
type ListCoursesForCompanyQuery$1 = {
    __typename?: "PublicQuery";
    company?: {
        __typename?: "Company";
        courses: {
            __typename?: "CourseConnection";
            totalCount: number;
            nodes?: Array<{
                __typename?: "Course";
                id: string;
                title?: string | null;
                coverImage?: string | null;
                experience: {
                    __typename?: "PublicExperience";
                    id: string;
                    accessPasses: Array<{
                        __typename?: "PublicAccessPass";
                        id: string;
                        title: string;
                    }>;
                };
            } | null> | null;
            pageInfo: {
                __typename?: "PageInfo";
                hasNextPage: boolean;
                endCursor?: string | null;
            };
        };
    } | null;
};
type ListCoursesForExperienceQueryVariables$1 = Exact$1<{
    experienceId: Scalars$1["ID"]["input"];
    first?: InputMaybe$1<Scalars$1["Int"]["input"]>;
    after?: InputMaybe$1<Scalars$1["String"]["input"]>;
}>;
type ListCoursesForExperienceQuery$1 = {
    __typename?: "PublicQuery";
    publicExperience: {
        __typename?: "PublicExperience";
        courses: {
            __typename?: "CourseConnection";
            totalCount: number;
            nodes?: Array<{
                __typename?: "Course";
                certificateAfterCompletionEnabled?: boolean | null;
                coverImage?: string | null;
                description?: string | null;
                id: string;
                language: Languages$1;
                requireCompletingLessonsInOrder: boolean;
                tagline?: string | null;
                title?: string | null;
                videoProtectionEnabled: boolean;
                chapters: Array<{
                    __typename?: "Chapter";
                    id: string;
                    title: string;
                    order: number;
                    lessons: Array<{
                        __typename?: "Lesson";
                        id: string;
                        lessonType: LessonTypes$1;
                        title: string;
                        order: number;
                        visibility: LessonVisibilities$1;
                        daysFromCourseStartUntilUnlock?: number | null;
                        content?: string | null;
                        muxAsset?: {
                            __typename?: "MuxAsset";
                            id: string;
                            muxAssetId?: string | null;
                            playbackId?: string | null;
                            signedPlaybackId?: string | null;
                            signedThumbnailPlaybackToken?: string | null;
                            signedVideoPlaybackToken?: string | null;
                            signedStoryboardPlaybackToken?: string | null;
                            durationSeconds?: number | null;
                            status: MuxAssetStatuses$1;
                            finishedUploadingAt?: number | null;
                        } | null;
                    }>;
                }>;
            } | null> | null;
            pageInfo: {
                __typename?: "PageInfo";
                hasNextPage: boolean;
                endCursor?: string | null;
            };
        };
    };
};
type MarkLessonAsCompletedMutationVariables$1 = Exact$1<{
    input: MarkLessonAsCompletedInput$1;
}>;
type MarkLessonAsCompletedMutation$1 = {
    __typename?: "PublicMutation";
    markLessonAsCompleted?: boolean | null;
};
type MoveCourseMutationVariables$1 = Exact$1<{
    input: MoveCourseInput$1;
}>;
type MoveCourseMutation$1 = {
    __typename?: "PublicMutation";
    moveCourse?: boolean | null;
};
type UpdateChapterOrderMutationVariables$1 = Exact$1<{
    input: UpdateChapterOrderInput$1;
}>;
type UpdateChapterOrderMutation$1 = {
    __typename?: "PublicMutation";
    updateChapterOrder?: {
        __typename?: "Chapter";
        id: string;
        title: string;
        order: number;
        lessons: Array<{
            __typename?: "Lesson";
            id: string;
            lessonType: LessonTypes$1;
            title: string;
            order: number;
            visibility: LessonVisibilities$1;
            daysFromCourseStartUntilUnlock?: number | null;
            content?: string | null;
            muxAsset?: {
                __typename?: "MuxAsset";
                id: string;
                muxAssetId?: string | null;
                playbackId?: string | null;
                signedPlaybackId?: string | null;
                signedThumbnailPlaybackToken?: string | null;
                signedVideoPlaybackToken?: string | null;
                signedStoryboardPlaybackToken?: string | null;
                durationSeconds?: number | null;
                status: MuxAssetStatuses$1;
                finishedUploadingAt?: number | null;
            } | null;
        }>;
    } | null;
};
type UpdateChapterMutationVariables$1 = Exact$1<{
    input: UpdateChapterInput$1;
}>;
type UpdateChapterMutation$1 = {
    __typename?: "PublicMutation";
    updateChapter?: {
        __typename?: "Chapter";
        id: string;
        title: string;
        order: number;
        lessons: Array<{
            __typename?: "Lesson";
            id: string;
            lessonType: LessonTypes$1;
            title: string;
            order: number;
            visibility: LessonVisibilities$1;
            daysFromCourseStartUntilUnlock?: number | null;
            content?: string | null;
            muxAsset?: {
                __typename?: "MuxAsset";
                id: string;
                muxAssetId?: string | null;
                playbackId?: string | null;
                signedPlaybackId?: string | null;
                signedThumbnailPlaybackToken?: string | null;
                signedVideoPlaybackToken?: string | null;
                signedStoryboardPlaybackToken?: string | null;
                durationSeconds?: number | null;
                status: MuxAssetStatuses$1;
                finishedUploadingAt?: number | null;
            } | null;
        }>;
    } | null;
};
type UpdateLessonOrderMutationVariables$1 = Exact$1<{
    input: UpdateLessonOrderInput$1;
}>;
type UpdateLessonOrderMutation$1 = {
    __typename?: "PublicMutation";
    updateLessonOrder?: {
        __typename?: "Lesson";
        id: string;
        lessonType: LessonTypes$1;
        title: string;
        order: number;
        visibility: LessonVisibilities$1;
        content?: string | null;
        daysFromCourseStartUntilUnlock?: number | null;
        muxAsset?: {
            __typename?: "MuxAsset";
            id: string;
            muxAssetId?: string | null;
            playbackId?: string | null;
            signedPlaybackId?: string | null;
            signedThumbnailPlaybackToken?: string | null;
            signedVideoPlaybackToken?: string | null;
            signedStoryboardPlaybackToken?: string | null;
            durationSeconds?: number | null;
            status: MuxAssetStatuses$1;
            finishedUploadingAt?: number | null;
        } | null;
        assessmentQuestions: Array<{
            __typename?: "AssessmentQuestion";
            id: string;
            correctAnswer: string;
            order: number;
            questionText: string;
            questionType: CoursesAssessmentQuestionTypes$1;
            image?: {
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null;
            options: Array<{
                __typename?: "AssessmentQuestionOption";
                id: string;
                isCorrect: boolean;
                optionText: string;
                order: number;
            }>;
        }>;
        attachments: {
            __typename?: "AttachmentInterfaceConnection";
            nodes?: Array<{
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null> | null;
        };
        mainPdf?: {
            __typename: "AudioAttachment";
            duration?: number | null;
            waveformUrl?: string | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "ImageAttachment";
            height?: number | null;
            width?: number | null;
            blurhash?: string | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "OtherAttachment";
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "VideoAttachment";
            height?: number | null;
            width?: number | null;
            duration?: number | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            preview: {
                __typename?: "AttachmentSource";
                url: string;
            };
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | null;
    } | null;
};
type UpdateLessonMutationVariables$1 = Exact$1<{
    input: UpdateLessonInput$1;
}>;
type UpdateLessonMutation$1 = {
    __typename?: "PublicMutation";
    updateLesson?: {
        __typename?: "Lesson";
        id: string;
        lessonType: LessonTypes$1;
        title: string;
        order: number;
        visibility: LessonVisibilities$1;
        content?: string | null;
        daysFromCourseStartUntilUnlock?: number | null;
        muxAsset?: {
            __typename?: "MuxAsset";
            id: string;
            muxAssetId?: string | null;
            playbackId?: string | null;
            signedPlaybackId?: string | null;
            signedThumbnailPlaybackToken?: string | null;
            signedVideoPlaybackToken?: string | null;
            signedStoryboardPlaybackToken?: string | null;
            durationSeconds?: number | null;
            status: MuxAssetStatuses$1;
            finishedUploadingAt?: number | null;
        } | null;
        assessmentQuestions: Array<{
            __typename?: "AssessmentQuestion";
            id: string;
            correctAnswer: string;
            order: number;
            questionText: string;
            questionType: CoursesAssessmentQuestionTypes$1;
            image?: {
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null;
            options: Array<{
                __typename?: "AssessmentQuestionOption";
                id: string;
                isCorrect: boolean;
                optionText: string;
                order: number;
            }>;
        }>;
        attachments: {
            __typename?: "AttachmentInterfaceConnection";
            nodes?: Array<{
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null> | null;
        };
        mainPdf?: {
            __typename: "AudioAttachment";
            duration?: number | null;
            waveformUrl?: string | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "ImageAttachment";
            height?: number | null;
            width?: number | null;
            blurhash?: string | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "OtherAttachment";
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "VideoAttachment";
            height?: number | null;
            width?: number | null;
            duration?: number | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            preview: {
                __typename?: "AttachmentSource";
                url: string;
            };
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | null;
    } | null;
};
type GetExperienceQueryVariables$1 = Exact$1<{
    experienceId: Scalars$1["ID"]["input"];
}>;
type GetExperienceQuery$1 = {
    __typename?: "PublicQuery";
    experience: {
        __typename?: "PublicExperience";
        upsellType?: UpsellTypes$1 | null;
        id: string;
        name: string;
        description?: string | null;
        upsellPlan?: {
            __typename?: "PublicPlan";
            id: string;
            baseCurrency: Currencies$1;
            rawRenewalPrice: number;
            rawInitialPrice: number;
            initialPriceDue: number;
            createdAt: number;
            updatedAt: number;
            billingPeriod?: number | null;
            trialPeriodDays?: number | null;
            expirationDays?: number | null;
            unlimitedStock: boolean;
            paymentLinkDescription?: string | null;
            releaseMethod: ReleaseMethod$1;
            stock?: number | null;
            visibility: Visibility$1;
            planType: PlanTypes$1;
        } | null;
        logo?: {
            __typename?: "AudioAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "ImageAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "OtherAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "VideoAttachment";
            sourceUrl?: string | null;
        } | null;
        app: {
            __typename?: "PublicApp";
            id: string;
            name: string;
            icon?: {
                __typename?: "AudioAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "ImageAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "OtherAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "VideoAttachment";
                sourceUrl?: string | null;
            } | null;
        };
        company: {
            __typename?: "PublicCompany";
            id: string;
            title: string;
        };
    };
};
type ListUsersForExperienceQueryVariables$1 = Exact$1<{
    experienceId: Scalars$1["ID"]["input"];
    after?: InputMaybe$1<Scalars$1["String"]["input"]>;
    before?: InputMaybe$1<Scalars$1["String"]["input"]>;
    direction?: InputMaybe$1<Direction$1>;
    first?: InputMaybe$1<Scalars$1["Int"]["input"]>;
    searchQuery?: InputMaybe$1<Scalars$1["String"]["input"]>;
}>;
type ListUsersForExperienceQuery$1 = {
    __typename?: "PublicQuery";
    publicExperience: {
        __typename?: "PublicExperience";
        users?: {
            __typename?: "PublicProfileUserConnection";
            totalCount: number;
            nodes?: Array<{
                __typename?: "PublicProfileUser";
                id: string;
                username: string;
                profilePicture?: {
                    __typename?: "AudioAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "ImageAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "OtherAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "VideoAttachment";
                    sourceUrl?: string | null;
                } | null;
            } | null> | null;
            pageInfo: {
                __typename?: "PageInfo";
                endCursor?: string | null;
                hasNextPage: boolean;
                hasPreviousPage: boolean;
            };
        } | null;
    };
};
type ListForumPostsFromForumQueryVariables$1 = Exact$1<{
    experienceId: Scalars$1["ID"]["input"];
}>;
type ListForumPostsFromForumQuery$1 = {
    __typename?: "PublicQuery";
    feedPosts?: {
        __typename?: "FeedPostsResponse";
        posts: Array<{
            __typename?: "ChatFeed";
        } | {
            __typename?: "DmsFeed";
        } | {
            __typename?: "DmsFeedMember";
        } | {
            __typename?: "DmsPost";
        } | {
            __typename?: "ForumFeed";
        } | {
            __typename?: "ForumPost";
            id: string;
            createdAt: string;
            updatedAt: string;
            content?: string | null;
            richContent?: string | null;
            isDeleted: boolean;
            isEdited: boolean;
            mentionedUserIds: Array<string>;
            parentId?: string | null;
            viewCount?: number | null;
            isPinned: boolean;
            attachments: Array<{
                __typename?: "AudioAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            } | {
                __typename?: "ImageAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            } | {
                __typename?: "OtherAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            } | {
                __typename?: "VideoAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            }>;
            user: {
                __typename?: "PublicProfileUser";
                id: string;
                name?: string | null;
                username: string;
                phoneVerified: boolean;
                city?: string | null;
                country?: string | null;
                profilePicture?: {
                    __typename?: "AudioAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "ImageAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "OtherAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "VideoAttachment";
                    sourceUrl?: string | null;
                } | null;
            };
        } | {
            __typename?: "LivestreamFeed";
        } | {
            __typename?: "MutedUser";
        } | {
            __typename?: "PublicLivestreamFeed";
        } | {
            __typename?: "Reaction";
        } | {
            __typename?: "ReactionCount";
        }>;
    } | null;
};
type ListMessagesFromChatQueryVariables$1 = Exact$1<{
    chatExperienceId?: InputMaybe$1<Scalars$1["ID"]["input"]>;
}>;
type ListMessagesFromChatQuery$1 = {
    __typename?: "PublicQuery";
    feedPosts?: {
        __typename?: "FeedPostsResponse";
        posts: Array<{
            __typename?: "ChatFeed";
        } | {
            __typename?: "DmsFeed";
        } | {
            __typename?: "DmsFeedMember";
        } | {
            __typename?: "DmsPost";
            id: string;
            createdAt: string;
            updatedAt: string;
            content?: string | null;
            richContent?: string | null;
            isDeleted: boolean;
            isEdited: boolean;
            isPinned: boolean;
            isEveryoneMentioned: boolean;
            mentionedUserIds: Array<string>;
            messageType: DmsPostTypes$1;
            replyingToPostId?: string | null;
            viewCount?: number | null;
            attachments: Array<{
                __typename?: "AudioAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            } | {
                __typename?: "ImageAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            } | {
                __typename?: "OtherAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            } | {
                __typename?: "VideoAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            }>;
            user: {
                __typename?: "PublicProfileUser";
                id: string;
                name?: string | null;
                username: string;
                phoneVerified: boolean;
                city?: string | null;
                country?: string | null;
                profilePicture?: {
                    __typename?: "AudioAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "ImageAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "OtherAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "VideoAttachment";
                    sourceUrl?: string | null;
                } | null;
            };
        } | {
            __typename?: "ForumFeed";
        } | {
            __typename?: "ForumPost";
        } | {
            __typename?: "LivestreamFeed";
        } | {
            __typename?: "MutedUser";
        } | {
            __typename?: "PublicLivestreamFeed";
        } | {
            __typename?: "Reaction";
        } | {
            __typename?: "ReactionCount";
        }>;
    } | null;
};
type GetCurrentUserQueryVariables$1 = Exact$1<{
    [key: string]: never;
}>;
type GetCurrentUserQuery$1 = {
    __typename?: "PublicQuery";
    viewer: {
        __typename?: "Viewer";
        user: {
            __typename?: "User";
            bio?: string | null;
            phoneVerified: boolean;
            bannerImage?: string | null;
            createdAt: number;
            dateOfBirthDay?: number | null;
            dateOfBirthMonth?: number | null;
            dateOfBirthYear?: number | null;
            id: string;
            email?: string | null;
            name?: string | null;
            username: string;
            ledgerAccount: {
                __typename?: "LedgerAccount";
                id: string;
                transferFee?: number | null;
                balanceCaches: {
                    __typename?: "BalanceCacheConnection";
                    nodes?: Array<{
                        __typename?: "BalanceCache";
                        balance: number;
                        pendingBalance: number;
                        currency: Currencies$1;
                    } | null> | null;
                };
            };
            profilePicture?: {
                __typename?: "AudioAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "ImageAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "OtherAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "VideoAttachment";
                sourceUrl?: string | null;
            } | null;
        };
    };
};
type GetUserLedgerAccountQueryVariables$1 = Exact$1<{
    [key: string]: never;
}>;
type GetUserLedgerAccountQuery$1 = {
    __typename?: "PublicQuery";
    viewer: {
        __typename?: "Viewer";
        user: {
            __typename?: "User";
            ledgerAccount: {
                __typename?: "LedgerAccount";
                id: string;
                transferFee?: number | null;
                balanceCaches: {
                    __typename?: "BalanceCacheConnection";
                    nodes?: Array<{
                        __typename?: "BalanceCache";
                        balance: number;
                        pendingBalance: number;
                        currency: Currencies$1;
                    } | null> | null;
                };
            };
        };
    };
};
type GetUserQueryVariables$1 = Exact$1<{
    userId: Scalars$1["ID"]["input"];
}>;
type GetUserQuery$1 = {
    __typename?: "PublicQuery";
    publicUser: {
        __typename?: "PublicProfileUser";
        bio?: string | null;
        phoneVerified: boolean;
        createdAt: number;
        id: string;
        name?: string | null;
        username: string;
        city?: string | null;
        country?: string | null;
        banner?: {
            __typename?: "AudioAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "ImageAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "OtherAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "VideoAttachment";
            sourceUrl?: string | null;
        } | null;
        profilePicture?: {
            __typename?: "AudioAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "ImageAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "OtherAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "VideoAttachment";
            sourceUrl?: string | null;
        } | null;
    };
};
type Requester$1<C = {}> = <R, V>(operationId: string, operationName: string, operationType: "query" | "mutation", vars?: V, options?: C) => Promise<R>;
declare function getSdk$1<C>(requester: Requester$1<C>): {
    accessPasses: {
        getAccessPass(variables: GetAccessPassQueryVariables$1, options?: C): Promise<GetAccessPassQuery$1["accessPass"]>;
    };
    attachments: {
        getAttachment(variables: GetAttachmentQueryVariables$1, options?: C): Promise<GetAttachmentQuery$1["attachment"]>;
        processAttachment(variables: ProcessAttachmentMutationVariables$1["input"], options?: C): Promise<ProcessAttachmentMutation$1["mediaAnalyzeAttachment"]>;
        uploadMedia(variables: UploadMediaMutationVariables$1["input"], options?: C): Promise<UploadMediaMutation$1["mediaDirectUpload"]>;
    };
    courses: {
        createAssessmentQuestion(variables: CreateAssessmentQuestionMutationVariables$1["input"], options?: C): Promise<CreateAssessmentQuestionMutation$1["createAssessmentQuestion"]>;
        createChapter(variables: CreateChapterMutationVariables$1["input"], options?: C): Promise<CreateChapterMutation$1["createChapter"]>;
        createCourse(variables: CreateCourseMutationVariables$1["input"], options?: C): Promise<CreateCourseMutation$1["createCourse"]>;
        createLesson(variables: CreateLessonMutationVariables$1["input"], options?: C): Promise<CreateLessonMutation$1["createLesson"]>;
        deleteAssessmentQuestionImage(variables: DeleteAssessmentQuestionImageMutationVariables$1["input"], options?: C): Promise<DeleteAssessmentQuestionImageMutation$1["deleteAssessmentQuestionImage"]>;
        deleteChapter(variables: DeleteChapterMutationVariables$1["input"], options?: C): Promise<DeleteChapterMutation$1["deleteChapter"]>;
        deleteLessonAttachment(variables: DeleteLessonAttachmentMutationVariables$1["input"], options?: C): Promise<DeleteLessonAttachmentMutation$1["deleteLessonAttachment"]>;
        deleteLesson(variables: DeleteLessonMutationVariables$1["input"], options?: C): Promise<DeleteLessonMutation$1["deleteLesson"]>;
        getCourse(variables: GetCourseQueryVariables$1, options?: C): Promise<GetCourseQuery$1["course"]>;
        getLesson(variables: GetLessonQueryVariables$1, options?: C): Promise<GetLessonQuery$1["course"]>;
        getUserLessonInteractions(variables: GetUserLessonInteractionsQueryVariables$1, options?: C): Promise<GetUserLessonInteractionsQuery$1["course"]>;
        listCoursesForCompany(variables: ListCoursesForCompanyQueryVariables$1, options?: C): Promise<ListCoursesForCompanyQuery$1["company"]>;
        listCoursesForExperience(variables: ListCoursesForExperienceQueryVariables$1, options?: C): Promise<ListCoursesForExperienceQuery$1["publicExperience"]>;
        markLessonAsCompleted(variables: MarkLessonAsCompletedMutationVariables$1["input"], options?: C): Promise<MarkLessonAsCompletedMutation$1["markLessonAsCompleted"]>;
        moveCourse(variables: MoveCourseMutationVariables$1["input"], options?: C): Promise<MoveCourseMutation$1["moveCourse"]>;
        updateChapterOrder(variables: UpdateChapterOrderMutationVariables$1["input"], options?: C): Promise<UpdateChapterOrderMutation$1["updateChapterOrder"]>;
        updateChapter(variables: UpdateChapterMutationVariables$1["input"], options?: C): Promise<UpdateChapterMutation$1["updateChapter"]>;
        updateLessonOrder(variables: UpdateLessonOrderMutationVariables$1["input"], options?: C): Promise<UpdateLessonOrderMutation$1["updateLessonOrder"]>;
        updateLesson(variables: UpdateLessonMutationVariables$1["input"], options?: C): Promise<UpdateLessonMutation$1["updateLesson"]>;
    };
    experiences: {
        getExperience(variables: GetExperienceQueryVariables$1, options?: C): Promise<GetExperienceQuery$1["experience"]>;
        listUsersForExperience(variables: ListUsersForExperienceQueryVariables$1, options?: C): Promise<ListUsersForExperienceQuery$1["publicExperience"]>;
    };
    forums: {
        listForumPostsFromForum(variables: ListForumPostsFromForumQueryVariables$1, options?: C): Promise<ListForumPostsFromForumQuery$1["feedPosts"]>;
    };
    messages: {
        listMessagesFromChat(variables?: ListMessagesFromChatQueryVariables$1, options?: C): Promise<ListMessagesFromChatQuery$1["feedPosts"]>;
    };
    users: {
        getCurrentUser(variables?: GetCurrentUserQueryVariables$1, options?: C): Promise<GetCurrentUserQuery$1["viewer"]>;
        getUserLedgerAccount(variables?: GetUserLedgerAccountQueryVariables$1, options?: C): Promise<GetUserLedgerAccountQuery$1["viewer"]>;
        getUser(variables: GetUserQueryVariables$1, options?: C): Promise<GetUserQuery$1["publicUser"]>;
    };
};
type Sdk$1 = ReturnType<typeof getSdk$1>;

/**
 * Prepares a file for upload.
 * @param data The file to upload.
 * @param record The record to upload the file to.
 * @returns The prepared file.
 */
declare function prepareAttachmentForUpload(this: Sdk$1, data: File | Blob, record: AttachableRecords$1): Promise<{
    data: File | Blob;
    id: string;
    multipartUploadUrls: {
        __typename?: "MultipartUrl";
        partNumber: number;
        url: string;
    }[];
    multipartUploadId: string;
    record: AttachableRecords$1;
    multipart: true;
    uploadUrl?: undefined;
    headers?: undefined;
} | {
    data: File | Blob;
    id: string;
    uploadUrl: string;
    headers: Record<string, string>;
    record: AttachableRecords$1;
    multipart: false;
    multipartUploadUrls?: undefined;
    multipartUploadId?: undefined;
}>;
type PreparedAttachment = Awaited<ReturnType<typeof prepareAttachmentForUpload>>;

/**
 * A task to upload a part of a file.
 */
interface MultipartUploadTask {
    url: string;
    fullData: File | Blob;
    partNumber: number;
    headers?: Record<string, string>;
    onProgress?: (progress: Pick<ProgressEvent, "loaded" | "total">) => void;
    signal?: AbortSignal;
}
type UploadPartFunction = (task: MultipartUploadTask) => Promise<string>;

type BaseSdk = ReturnType<typeof getSdk$1<RequestInit>>;
declare function partialFileSdkExtensions(baseSdk: BaseSdk): {
    prepareAttachmentForUpload: (data: File | Blob, record: AttachableRecords$1) => Promise<{
        data: File | Blob;
        id: string;
        multipartUploadUrls: {
            __typename?: "MultipartUrl";
            partNumber: number;
            url: string;
        }[];
        multipartUploadId: string;
        record: AttachableRecords$1;
        multipart: true;
        uploadUrl?: undefined;
        headers?: undefined;
    } | {
        data: File | Blob;
        id: string;
        uploadUrl: string;
        headers: Record<string, string>;
        record: AttachableRecords$1;
        multipart: false;
        multipartUploadUrls?: undefined;
        multipartUploadId?: undefined;
    }>;
    analyzeAttachment: (signedId: string, opts?: {
        signal?: AbortSignal;
    } | undefined) => Promise<{
        __typename: "AudioAttachment";
        duration?: number | null;
        waveformUrl?: string | null;
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | {
        __typename: "ImageAttachment";
        height?: number | null;
        width?: number | null;
        blurhash?: string | null;
        aspectRatio?: number | null;
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | {
        __typename: "OtherAttachment";
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | {
        __typename: "VideoAttachment";
        height?: number | null;
        width?: number | null;
        duration?: number | null;
        aspectRatio?: number | null;
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        preview: {
            __typename?: "AttachmentSource";
            url: string;
        };
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | undefined>;
};
type PartialFileSdkExtensions = ReturnType<typeof partialFileSdkExtensions>;

/**
 * The file input for the attachment upload.
 */
type UploadFileInput = {
    file: File | Blob;
    record: AttachableRecords$1;
} | PreparedAttachment | Promise<PreparedAttachment>;
/**
 * Additional options for the attachment upload.
 */
interface UploadFileOptions {
    /**
     * This callback is called with the progress of the upload.
     */
    onProgress?: (progress: number) => void;
    /**
     * This signal can be used to abort the upload.
     */
    signal?: AbortSignal;
}
/**
 * Response returned by `UploadAttachment`.
 */
interface UploadAttachmentResponse {
    /** The direct upload ID - use this to attach the attachment to a resource */
    directUploadId: string;
    /** The record type the attachment was attached to */
    record: AttachableRecords$1;
    /** The attachment */
    attachment: AttachmentFragment$1;
}
declare function makeUploadAttachmentFunction({ uploadPart, }: {
    uploadPart: UploadPartFunction;
}): (this: PartialFileSdkExtensions & Pick<ReturnType<typeof getSdk$1<RequestInit>>, "attachments">, input: UploadFileInput, { onProgress, signal }?: UploadFileOptions) => Promise<UploadAttachmentResponse>;

type Maybe<T> = T | null;
type InputMaybe<T> = Maybe<T>;
type Exact<T extends {
    [key: string]: unknown;
}> = {
    [K in keyof T]: T[K];
};
type MakeOptional<T, K extends keyof T> = Omit<T, K> & {
    [SubKey in K]?: Maybe<T[SubKey]>;
};
type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {
    [SubKey in K]: Maybe<T[SubKey]>;
};
type MakeEmpty<T extends {
    [key: string]: unknown;
}, K extends keyof T> = {
    [_ in K]?: never;
};
type Incremental<T> = T | {
    [P in keyof T]?: P extends " $fragmentName" | "__typename" ? T[P] : never;
};
/** All built-in and custom scalars, mapped to their actual values */
interface Scalars {
    ID: {
        input: string;
        output: string;
    };
    String: {
        input: string;
        output: string;
    };
    Boolean: {
        input: boolean;
        output: boolean;
    };
    Int: {
        input: number;
        output: number;
    };
    Float: {
        input: number;
        output: number;
    };
    /**
     * Represents non-fractional signed whole numeric values. Since the value may
     * exceed the size of a 32-bit integer, it's encoded as a string.
     */
    BigInt: {
        input: string;
        output: string;
    };
    /**
     * The `Decimal` scalar type represents signed double-precision fractional
     * values. The Decimal appears in a JSON response as a string to preserve
     * precision.
     */
    Decimal: {
        input: string;
        output: string;
    };
    /** Url to uploaded upload */
    File: {
        input: string;
        output: string;
    };
    /** Represents untyped JSON */
    JSON: {
        input: {
            [key: string]: any;
        };
        output: {
            [key: string]: any;
        };
    };
    /** A number - float or integer */
    Number: {
        input: number;
        output: number;
    };
    /**
     * A hash of requirements. Valid keys: email_required
     * custom_password
     * ownership_of_access_passes
     */
    Requirements: {
        input: Record<string, unknown>;
        output: Record<string, unknown>;
    };
    /** String removes all html tags */
    SanitizedString: {
        input: string;
        output: string;
    };
    /** A float that can be a string */
    StringFloat: {
        input: string | number;
        output: string | number;
    };
    /** A valid timestamp in seconds, transported as an integer */
    Timestamp: {
        input: number;
        output: number;
    };
    /** URL starting with http/https */
    UrlString: {
        input: string;
        output: string;
    };
}
/** The name of the resource type that is being reported. */
type AbuseReportCategoryResourceTypes = 
/** Page */
"Page";
/** Visibility of an abuse report category */
type AbuseReportCategoryVisibility = 
/** Hidden */
"hidden"
/** Live */
 | "live";
/** The status of the abuse report */
type AbuseReportStatus = 
/** Accepted */
"accepted"
/** Canceled */
 | "canceled"
/** Pending */
 | "pending"
/** Rejected */
 | "rejected";
/** The high level payment processor options. */
type AcceptedPaymentMethods = "coinbase" | "free" | "multi_psp" | "paypal" | "platform_balance" | "sezzle" | "splitit" | "stripe";
/** The access level a given user (or company) has to an access pass or company. */
type AccessLevel = "admin" | "customer" | "no_access";
/** The ways a relation of AccessPasses can be ordered */
type AccessPassAffiliateOrder = "cached_referrals_count" | "cached_usd_rewards" | "created_at";
/** An AccessPassAffiliate status */
type AccessPassAffiliateStatuses = 
/** Active */
"active"
/** Archived */
 | "archived";
/** The types of categories that can be used for AccessPass attachments. */
type AccessPassAttachmentCategories = "affiliate_assets" | "gallery_images";
/** The conditions that an access pass can have */
type AccessPassConditions = "has_plans";
/** Values to filter access passes on */
interface AccessPassFilters {
    /**
     * Whether or not this creator achieved the 3k in 30 milestone
     * @deprecated No longer available.
     */
    achievedThreeKInThirty?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** How to order the results. */
    direction?: InputMaybe<Direction>;
    /**
     * Whether or not to only return discoverable access passes.
     * @deprecated We only return discoverable access passes now.
     */
    discoverable?: InputMaybe<Scalars["Boolean"]["input"]>;
    /**
     * The discovery category to filter by
     * @deprecated The discovery AI API is no longer used.
     */
    discoveryCategoryId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The max global affiliate percentage */
    globalAffiliatePercentageMaximum?: InputMaybe<Scalars["Float"]["input"]>;
    /** The min global affiliate percentage */
    globalAffiliatePercentageMinimum?: InputMaybe<Scalars["Float"]["input"]>;
    /** The global affiliate status */
    globalAffiliateStatus?: InputMaybe<GlobalAffiliateStatuses>;
    /** An array, in order, of the category route tree that is being traversed. */
    marketplaceCategoryRoutes?: InputMaybe<Array<Scalars["ID"]["input"]>>;
    /** The max global affiliate percentage */
    memberAffiliatePercentageMaximum?: InputMaybe<Scalars["Float"]["input"]>;
    /** The min global affiliate percentage */
    memberAffiliatePercentageMinimum?: InputMaybe<Scalars["Float"]["input"]>;
    /** The status of the member affiliate program for this access pass. */
    memberAffiliateStatus?: InputMaybe<GlobalAffiliateStatuses>;
    /** What to order the results by. */
    order?: InputMaybe<PublicAccessPassesOrder>;
    /** The max price */
    priceMaximum?: InputMaybe<Scalars["Float"]["input"]>;
    /** The min price */
    priceMinimum?: InputMaybe<Scalars["Float"]["input"]>;
    /** Filter to show only passes owned by students of the specified access pass */
    studentsOfAccessPassId?: InputMaybe<Scalars["ID"]["input"]>;
    /**
     * Whether or not the access pass' company uses whop four
     * @deprecated No longer applies.
     */
    usesWhopFour?: InputMaybe<Scalars["Boolean"]["input"]>;
}
/** The onboarding versions for access passes */
type AccessPassOnboardingVersionTypes = "mar_2025";
/** The ways a relation of AccessPasses can be ordered */
type AccessPassOrder = "active_memberships_count" | "created_at" | "usd_gmv" | "usd_gmv_30_days";
/** The different types an access pass can be. */
type AccessPassTypes = 
/** Api Only */
"api_only"
/** App */
 | "app"
/** Experience Upsell */
 | "experience_upsell"
/** Regular */
 | "regular";
/** Which columns can be used to sort. */
type AccessPassesSortableColumns = "active_members_count" | "active_memberships_count" | "created_at" | "id";
/** The types of payouts an affiliate can have */
type AffiliatePayoutTypes = "flat_fee" | "percentage";
/** Which columns can be used to sort. */
type AffiliatePlansSortableColumns = "created_at" | "id";
/** Values to filter affiliate referral logs on */
interface AffiliateReferralLogFilters {
    /** Specific affiliates. */
    affiliateIds?: InputMaybe<Array<Scalars["ID"]["input"]>>;
    /** A specific affiliate type. */
    affiliateType?: InputMaybe<AffiliateTypes>;
    /** Specific plans. */
    planIds?: InputMaybe<Array<Scalars["ID"]["input"]>>;
    /** The text that is being searched. */
    query?: InputMaybe<Scalars["String"]["input"]>;
    /** Specific users. */
    userIds?: InputMaybe<Array<Scalars["ID"]["input"]>>;
}
/** Which columns can be used to sort. */
type AffiliateReferralLogsSortableColumns = "created_at" | "id";
/** The scope of an affiliate (company based, global, etc.) */
type AffiliateTypes = 
/** Custom */
"custom"
/** Global */
 | "global"
/** Marketplace */
 | "marketplace"
/** Passholder */
 | "passholder";
/** Which columns can be used to sort. */
type AffiliatesSortableColumns = "cached_total_referrals" | "cached_total_rewards" | "created_at" | "id";
/** Autogenerated input type of AnalyzeAttachment */
interface AnalyzeAttachmentInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID returned by the direct upload mutation */
    directUploadId: Scalars["String"]["input"];
    /** The type of media to analyze */
    mediaType: Media;
    /** The parts of the multipart upload */
    multipartParts?: InputMaybe<Array<UploadPartInput>>;
    /** The ID returned by the direct upload mutation */
    multipartUploadId?: InputMaybe<Scalars["String"]["input"]>;
}
/** The different types of permissions an api key can have. */
type ApiKeyPermissions = 
/** Add free days membership */
"add_free_days_membership"
/** Cancel membership */
 | "cancel_membership"
/** Create checkout request */
 | "create_checkout_request"
/** Create checkout session */
 | "create_checkout_session"
/** Create plan */
 | "create_plan"
/** Create promo code */
 | "create_promo_code"
/** Create push notification */
 | "create_push_notification"
/** Create quick link */
 | "create_quick_link"
/** Create webhook */
 | "create_webhook"
/** Delete checkout session */
 | "delete_checkout_session"
/** Delete experience */
 | "delete_experience"
/** Delete promo code */
 | "delete_promo_code"
/** Delete webhook */
 | "delete_webhook"
/** List access passes */
 | "list_access_passes"
/** List checkout sessions */
 | "list_checkout_sessions"
/** List customers */
 | "list_customers"
/** List experiences */
 | "list_experiences"
/** List licenses */
 | "list_licenses"
/** List members */
 | "list_members"
/** List memberships */
 | "list_memberships"
/** List payment fees */
 | "list_payment_fees"
/** List payment methods */
 | "list_payment_methods"
/** List payments */
 | "list_payments"
/** List plans */
 | "list_plans"
/** List products */
 | "list_products"
/** List promo codes */
 | "list_promo_codes"
/** List reviews */
 | "list_reviews"
/** List webhooks */
 | "list_webhooks"
/** Refund payment */
 | "refund_payment"
/** Retrieve access pass */
 | "retrieve_access_pass"
/** Retrieve checkout request */
 | "retrieve_checkout_request"
/** Retrieve checkout session */
 | "retrieve_checkout_session"
/** Retrieve company */
 | "retrieve_company"
/** Retrieve customer */
 | "retrieve_customer"
/** Retrieve experience */
 | "retrieve_experience"
/** Retrieve member */
 | "retrieve_member"
/** Retrieve membership */
 | "retrieve_membership"
/** Retrieve payment */
 | "retrieve_payment"
/** Retrieve plan */
 | "retrieve_plan"
/** Retrieve product */
 | "retrieve_product"
/** Retrieve promo code */
 | "retrieve_promo_code"
/** Retrieve review */
 | "retrieve_review"
/** Retrieve webhook */
 | "retrieve_webhook"
/** Send notification customers */
 | "send_notification_customers"
/** Send notification members */
 | "send_notification_members"
/** Terminate membership */
 | "terminate_membership"
/** Update access pass */
 | "update_access_pass"
/** Update experience */
 | "update_experience"
/** Update membership */
 | "update_membership"
/** Update plan */
 | "update_plan"
/** Update product */
 | "update_product"
/** Update promo code */
 | "update_promo_code"
/** Update webhook */
 | "update_webhook"
/** Validate license */
 | "validate_license";
/** The different API versions */
type ApiVersion = "v2" | "v5";
/** The different platforms an app build can target. */
type AppBuildPlatforms = "android" | "ios" | "web";
/** The different statuses an AppBuild can be in. */
type AppBuildStatuses = "approved" | "draft" | "pending" | "rejected";
/** Image styles for app. */
type AppImageStyles = "s16" | "s24" | "s32" | "s40" | "s48" | "s80";
/** The status of an experience interface */
type AppStatuses = 
/** Hidden */
"hidden"
/** Live */
 | "live"
/** Unlisted */
 | "unlisted";
/** These are the scopes an app can request on behalf of a user */
type AppValidScopes = 
/** Read User */
"read_user";
/** The different types of an app view */
type AppViewTypes = 
/** Analytics */
"analytics"
/** Dash */
 | "dash"
/** Discover */
 | "discover"
/** Hub */
 | "hub";
/** The criteria for an application to the marketplace. */
type ApplicationCriteriaIdentifier = 
/** App */
"app"
/** Available Plan */
 | "available_plan"
/** Benefit */
 | "benefit"
/** Choose Category */
 | "choose_category"
/** Description */
 | "description"
/** Gallery Images */
 | "gallery_images"
/** Headline */
 | "headline"
/** Logo */
 | "logo"
/** Setup Payouts */
 | "setup_payouts"
/** Title */
 | "title"
/** Visibility */
 | "visibility";
/** The types of records that an attachment can be attached to */
type AttachableRecords = "abuse_report" | "access_pass" | "app" | "assessment_question" | "automated_messages_config" | "bot" | "bounty" | "bounty_submission" | "competition_prize" | "content_reward_campaign" | "content_reward_submission" | "course_lesson" | "dispute" | "dms_post" | "experience" | "forum_post" | "resolution_event_upload" | "review" | "review_report" | "user";
/** Input for an attachment */
interface AttachmentInput {
    /**
     * This ID should be used the first time you upload an attachment. It is the ID
     * of the direct upload that was created when uploading the file to S3 via the
     * mediaDirectUpload mutation.
     */
    directUploadId?: InputMaybe<Scalars["ID"]["input"]>;
    /**
     * The ID of an existing attachment object. Use this when updating a resource and
     * keeping a subset of the attachments. Don't use this unless you know what you're doing.
     */
    id?: InputMaybe<Scalars["ID"]["input"]>;
}
/** Which columns can be used to sort. */
type AuditLogsSortableColumns = "created_at" | "id";
/** The possible 2FA authentication types. */
type AuthenticationMethods = "authenticator" | "sms";
/** Possible roles an authorized user can have */
type AuthorizedUserRoles = 
/** Admin */
"admin"
/** App Manager */
 | "app_manager"
/** Manager */
 | "manager"
/** Moderator */
 | "moderator"
/** Owner */
 | "owner"
/** Sales Manager */
 | "sales_manager"
/** Support */
 | "support";
/** The different categories of automated messages triggers. */
type AutomatedMessagesTriggerCategories = "access_pass" | "app";
/** Image styles for avatar. */
type AvatarImageStyles = "s16" | "s24" | "s32" | "s40" | "s48" | "s64" | "s80" | "s128" | "s180";
/** Balance reservation reservation types. */
type BalanceReservationReservationTypes = "bnpl" | "regular";
/** The reasons for banning a user */
type BanReasons = "botting_content_rewards" | "botting_negative_reviews" | "control_center_blocked_country" | "harassment" | "other" | "spamming";
/** Autogenerated input type of BanUser */
interface BanUserInput {
    /** The ID of the access pass to ban the user from */
    accessPassId?: InputMaybe<Scalars["ID"]["input"]>;
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The custom reason for banning the user */
    customReason?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the feed to delete messages from */
    deleteMessagesInFeedId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The reason for banning the user */
    reason?: InputMaybe<BanReasons>;
    /** The ID of the user to ban */
    userId: Scalars["ID"]["input"];
}
/** The reason why a specific payment was billed */
type BillingReasons = 
/** Manual */
"manual"
/** One Time */
 | "one_time"
/** Subscription */
 | "subscription"
/** Subscription Create */
 | "subscription_create"
/** Subscription Cycle */
 | "subscription_cycle"
/** Subscription Update */
 | "subscription_update";
/** The BNPL (Buy Now Pay Later) providers for a company */
type BnplProvider = "afterpay_clearpay" | "klarna" | "sezzle" | "splitit" | "zip";
/** Values to filter bounties on */
interface BountyFilters {
    /** How to order the results. */
    direction?: InputMaybe<Direction>;
    /** Ability to filter bounties by access passes in specific marketplace categories. */
    marketplaceCategoryRoutes?: InputMaybe<Array<Scalars["ID"]["input"]>>;
    /** Whether to only include bounties that are not whop bounties. */
    nonWhopOnly?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** What to order the results by. */
    order?: InputMaybe<PublicBountiesOrder>;
}
/** The type of update an event is. */
type BusinessActivityEventTypes = 
/** Member Canceled */
"member_canceled"
/** Member Churned */
 | "member_churned"
/** Member Joined */
 | "member_joined"
/** New Dispute */
 | "new_dispute"
/** New Marketplace Sale */
 | "new_marketplace_sale"
/** New Payment */
 | "new_payment";
/** Image styles for business_affiliate. */
type BusinessAffiliateImageStyles = "s16" | "s20" | "s24" | "s32" | "s40" | "s48" | "s64" | "s80" | "s128" | "s180" | "s600x200" | "s800x200" | "s900x300" | "s1200x630" | "s1600x400";
/** The different business types a company can be. */
type BusinessTypes = 
/** Agency */
"agency"
/** Brick And Mortar */
 | "brick_and_mortar"
/** Coaching */
 | "coaching"
/** Community */
 | "community"
/** Course */
 | "course"
/** Education Program */
 | "education_program"
/** Events */
 | "events"
/** Newsletter */
 | "newsletter"
/** Other */
 | "other"
/** Paid Group */
 | "paid_group"
/** Physical Products */
 | "physical_products"
/** Saas */
 | "saas"
/** Software */
 | "software";
/** The names of places where the user should be re-directed when clicking the buy box button. */
type BuyButtonLocations = "checkout" | "hub_entries";
/** The modes for the buyer fee. */
type BuyerFeeMode = "use_account_fee" | "use_experiment_fee";
/** The different reasons a user can choose for why they are canceling their membership. */
type CancelOptions = "bad_experience" | "missing_features" | "other" | "switching" | "technical_issues" | "testing" | "too_expensive";
/** The over-arching state of the resolution. */
type CaseStates = "closed" | "open";
/** Autogenerated input type of ChangeCardMyMembership */
interface ChangeCardMyMembershipInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the company that this membership is on behalf of. */
    companyBuyerId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The ID of the membership to cancel at the end of the period. */
    membershipId: Scalars["ID"]["input"];
    /** The URL you want to take the user to when they return */
    redirectUrl?: InputMaybe<Scalars["UrlString"]["input"]>;
}
/** The different card funding methods a charge can have. */
type ChargeCardFunding = 
/** Credit */
"credit"
/** Debit */
 | "debit"
/** Prepaid */
 | "prepaid"
/** Unknown */
 | "unknown";
/** The different risk levels a charge can have. */
type ChargeOutcomeRiskLevels = 
/** Elevated */
"elevated"
/** Highest */
 | "highest"
/** Normal */
 | "normal"
/** Not Assessed */
 | "not_assessed"
/** Unknown */
 | "unknown";
/** Autogenerated input type of ChargeUser */
interface ChargeUserInput {
    /** The affiliate code to use for the checkout session */
    affiliateCode?: InputMaybe<Scalars["String"]["input"]>;
    /** The amount to charge the user */
    amount: Scalars["Float"]["input"];
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The currency to charge in */
    currency: Currencies;
    /** The description of the charge. Maximum 200 characters. */
    description?: InputMaybe<Scalars["String"]["input"]>;
    /** Additional metadata for the charge */
    metadata?: InputMaybe<Scalars["JSON"]["input"]>;
    /** The URL to redirect the user to after the checkout session is created */
    redirectUrl?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the user to charge */
    userId: Scalars["ID"]["input"];
}
/** The possible statuses for a charge user response */
type ChargeUserResponseStatus = 
/** The charge requires additional action from the user. */
"needs_action"
/** The charge was successful */
 | "success";
/** Chart interval (period). */
type ChartIntervals = "daily" | "hourly" | "monthly" | "weekly" | "yearly";
/** Input for a chat feed */
interface ChatFeedInput {
    /** Whether or not media is banned in this chat */
    banMedia?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** Whether or not URLs are banned in this chat */
    banUrls?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** List of banned words in this chat */
    bannedWords?: InputMaybe<Array<Scalars["String"]["input"]>>;
    /** The unique identifier for the feed */
    id: Scalars["ID"]["input"];
    /** Whether the entity has been deleted */
    isDeleted?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The number of seconds a user needs to wait before posting again, if any */
    userPostsCooldownSeconds?: InputMaybe<Scalars["Int"]["input"]>;
    /** Who can post on this chat */
    whoCanPost?: InputMaybe<WhoCanPostTypes>;
    /** Who can react on this chat */
    whoCanReact?: InputMaybe<WhoCanReactTypes>;
}
/** Categories of payment methods available for checkout */
type CheckoutPaymentMethodCategory = "BANK_TRANSFER" | "BNPL" | "CARD" | "PAYMENT_LINK" | "TICKET" | "WALLET";
/** The type of checkout session being made */
type CheckoutSessionTypes = "in_app_purchase" | "purchase";
/** The state of the Coinbase Commerce connection. */
type CoinbaseCommerceStatuses = 
/** The Coinbase commerce connection is broken and needs to be fixed with a new API key. */
"broken"
/** The Coinbase Commerce account is missing a settlement address. This needs to be set from the coinbase dashboard. */
 | "missing_settlement_address"
/** The Coinbase commerce connection is setup and ready to be used. */
 | "setup"
/** The webhook connection has not been tested / verified. */
 | "webhook_not_verified";
/** The ways a relation of Companies can be ordered */
type CompaniesOrder = "created_at" | "id" | "total_memberships_earnings";
/** The types of categories that can be used for company attachments. */
type CompanyAttachmentCategories = "gallery_images";
/** Image styles for company. */
type CompanyImageStyles = "s16" | "s20" | "s24" | "s32" | "s40" | "s48" | "s64" | "s80" | "s128" | "s180" | "s600x200" | "s800x200" | "s900x300" | "s1200x630" | "s1600x400";
/** DEPRECATED: The different types a company can be. */
type CompanyTypes = "app" | "bot" | "community" | "nft" | "other" | "proxy" | "server";
/** The different types a competition can be */
type CompetitionMetricTypes = 
/** Earnings Inside Access Pass */
"earnings_inside_access_pass"
/** Global Earnings */
 | "global_earnings";
/** The different types a competition prize can be */
type CompetitionPrizeTypes = 
/** Cash */
"cash"
/** Custom */
 | "custom";
/** Statuses for connected accounts */
type ConnectedAccountStatuses = "connected" | "needs_completion" | "rejected" | "requirements_not_met" | "under_review";
/** Different types of how a company's marketplace card should display its pricing / access. */
type ConnectedAccountTypes = 
/** Custom */
"custom"
/** Express */
 | "express"
/** Platform Managed */
 | "platform_managed"
/** Standard */
 | "standard"
/** Whop Credit */
 | "whop_credit";
/** The ordering options for content rewards */
type ContentRewardsCampaignOrder = "amount_paid_out" | "expires_at" | "pending_submissions_count" | "submissions_count" | "total_budget";
/** The different statuses content reward campaigns can be assigned to */
type ContentRewardsCampaignStatus = 
/** Active */
"active"
/** Archived */
 | "archived"
/** Expired */
 | "expired"
/** Pending */
 | "pending";
/** Values to filter content rewards on */
interface ContentRewardsCampaignsFilters {
    /** The direction to order by */
    direction?: InputMaybe<Direction>;
    /** The ID to filter campaigns for */
    experienceId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The order of the rewards */
    order?: InputMaybe<ContentRewardsCampaignOrder>;
    /** The status of the reward */
    status?: InputMaybe<ContentRewardsCampaignStatus>;
}
/** The different categories content reward campaigns can be assigned to */
type ContentRewardsCategory = 
/** Brand */
"brand"
/** Creator */
 | "creator"
/** E Commerce */
 | "e_commerce"
/** Entertainment */
 | "entertainment"
/** Influencer */
 | "influencer"
/** Logo */
 | "logo"
/** Music */
 | "music"
/** Musician */
 | "musician"
/** Other */
 | "other"
/** Personal Brand */
 | "personal_brand"
/** Podcast */
 | "podcast"
/** Products */
 | "products"
/** Software */
 | "software"
/** Stream */
 | "stream"
/** Streamer */
 | "streamer";
/** The different types of content accepted by a content reward campaign */
type ContentRewardsContentType = 
/** Clipping */
"clipping"
/** Faceless */
 | "faceless"
/** Other */
 | "other"
/** Ugc */
 | "ugc";
/** The different platforms that content rewards submissions can be for */
type ContentRewardsPlatform = 
/** Instagram */
"instagram"
/** Tiktok */
 | "tiktok"
/** X */
 | "x"
/** Youtube */
 | "youtube";
/** The ordering options for public content rewards campaigns */
type ContentRewardsPublicCampaignOrder = "amount_paid_out" | "budget_left" | "created_at" | "expires_at";
/** Values to filter public content rewards on */
interface ContentRewardsPublicCampaignsFilters {
    /** The direction to order by */
    direction?: InputMaybe<Direction>;
    /** The order of the rewards */
    order?: InputMaybe<ContentRewardsPublicCampaignOrder>;
    /** The status of the reward */
    status?: InputMaybe<ContentRewardsCampaignStatus>;
}
/** The different results of submission analysis */
type ContentRewardsSubmissionAnalysisResults = 
/** Fail */
"fail"
/** Pass */
 | "pass"
/** Unknown */
 | "unknown";
/** The reasons a content rewards submission can be flagged for. */
type ContentRewardsSubmissionFlagReasons = 
/** Engagement Ratio */
"engagement_ratio"
/** Ml Analysis */
 | "ml_analysis"
/** Reported Botter */
 | "reported_botter"
/** Text Analysis */
 | "text_analysis"
/** Video Analysis */
 | "video_analysis"
/** View Acceleration */
 | "view_acceleration"
/** View Spike */
 | "view_spike";
/** The different statuses content reward submissions can be assigned to */
type ContentRewardsSubmissionStatus = 
/** Approved */
"approved"
/** Flagged */
 | "flagged"
/** Pending */
 | "pending"
/** Rejected */
 | "rejected";
/** The configuration for a chart. */
interface ContentRewardsSubmissionViewsChartConfigInput {
    /** The interval to group the data by. */
    interval?: InputMaybe<ChartIntervals>;
    /** The time zone used for start of day calculations. */
    timeZone?: InputMaybe<Scalars["String"]["input"]>;
    /** The week mode to group the data by. For details, look at https://clickhouse.com/docs/en/sql-reference/functions/date-time-functions#toweek */
    weekMode?: InputMaybe<Scalars["Int"]["input"]>;
}
/** Values to filter content rewards submissions on */
interface ContentRewardsSubmissionsFilters {
    /**
     * The type of attachment required on the submission
     * @deprecated No longer available
     */
    attachmentType?: InputMaybe<FileAttachmentTypes>;
    /** The campaign ID to filter by */
    campaignId?: InputMaybe<Scalars["ID"]["input"]>;
    /** Filter submissions by date created after */
    createdAtAfter?: InputMaybe<Scalars["Timestamp"]["input"]>;
    /** Filter submissions by date created before */
    createdAtBefore?: InputMaybe<Scalars["Timestamp"]["input"]>;
    /** The direction to order by */
    direction?: InputMaybe<Direction>;
    /** Whether to exclude banned users from the results */
    excludeBannedUsers?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The experience ID to filter by */
    experienceId?: InputMaybe<Scalars["ID"]["input"]>;
    /** Whether the submission was flagged by AI */
    flaggedByAi?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The order to sort the results by */
    order?: InputMaybe<ContentRewardsSubmissionsOrder>;
    /** Whether the submission has reached the minimum payout */
    reachedMinimumPayout?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The status of the submissions */
    status?: InputMaybe<ContentRewardsSubmissionStatus>;
    /** Filter submissions by partial username match */
    username?: InputMaybe<Scalars["String"]["input"]>;
    /** The result of the video analysis */
    videoAnalysisResult?: InputMaybe<ContentRewardsSubmissionAnalysisResults>;
}
/** The ordering options for content rewards submissions */
type ContentRewardsSubmissionsOrder = "created_at" | "total_paid" | "total_view_count";
/** Which columns can be used to sort. */
type ContentRewardsSubmissionsSortableColumns = "cached_total_paid" | "cached_total_view_count" | "created_at" | "id" | "status";
/** The configuration for a chart. */
interface ContentRewardsViewsChartConfigInput {
    /** The ID of the campaign to filter by */
    campaignId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The ID of the experience to filter by */
    experienceId: Scalars["ID"]["input"];
    /** The start date to take into account. */
    from: Scalars["Timestamp"]["input"];
    /** The interval to group the data by. */
    interval?: InputMaybe<ChartIntervals>;
    /** The time zone used for start of day calculations. */
    timeZone?: InputMaybe<Scalars["String"]["input"]>;
    /** The end date to take into account. */
    to: Scalars["Timestamp"]["input"];
    /** The week mode to group the data by. For details, look at https://clickhouse.com/docs/en/sql-reference/functions/date-time-functions#toweek */
    weekMode?: InputMaybe<Scalars["Int"]["input"]>;
}
/** The available types for an assessment question */
type CoursesAssessmentQuestionTypes = 
/** Multiple choice */
"multiple_choice"
/** Multiple select */
 | "multiple_select"
/** Short answer */
 | "short_answer"
/** True false */
 | "true_false";
/** Autogenerated input type of CreateAppBuild */
interface CreateAppBuildInput {
    /**
     * Attachment input for the app build file. This should be an upload in .zip
     * format. The zip should contain at least one main_js_bundle.hbc file and
     * optionally an assets folder next to it.
     */
    attachment: AttachmentInput;
    /**
     * Checksum of the app build file. This is generated by the client and used to
     * verify the integrity of the file that is submitted when un-packaged later on a device.
     */
    checksum: Scalars["String"]["input"];
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The platform of the app build (ios, android, web) */
    platform: AppBuildPlatforms;
    /**
     * Supported app view types for the app build. A build can specify multiple view
     * types, but should only specify ones that its code supports.
     */
    supportedAppViewTypes?: InputMaybe<Array<AppViewTypes>>;
}
/** Autogenerated input type of CreateAssessmentQuestion */
interface CreateAssessmentQuestionInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The correct answer to the assessment question */
    correctAnswer: Scalars["String"]["input"];
    /** The ID of the lesson to create the assessment question in */
    lessonId: Scalars["ID"]["input"];
    /** The text of the question being asked */
    questionText: Scalars["String"]["input"];
    /** The type of the assessment question */
    questionType: CoursesAssessmentQuestionTypes;
}
/** Autogenerated input type of CreateChapter */
interface CreateChapterInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the course to create the chapter in */
    courseId: Scalars["ID"]["input"];
    /** The title of the chapter */
    title?: InputMaybe<Scalars["String"]["input"]>;
}
/** Autogenerated input type of CreateChat */
interface CreateChatInput {
    /** The ID of the access pass (whop) to attach the chat experience to. It looks like prod_xxxx. */
    accessPassId?: InputMaybe<Scalars["ID"]["input"]>;
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /**
     * The ID of an existing experience. If supplied, this new chat experience will
     * be attached to the first access pass (whop) of this experience. It looks like exp_xxxx.
     */
    experienceId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The expiration date of the chat experience to be created. After this timestamp, the experience disappears. */
    expiresAt?: InputMaybe<Scalars["Timestamp"]["input"]>;
    /** The name of the chat experience to be created, shown to users in the UI. */
    name: Scalars["String"]["input"];
    /**
     * The upsell plan details to add for the chat experience. This allows you to
     * require paid access for the chat within the whop.
     */
    price?: InputMaybe<UpsellPlanInput>;
    /**
     * This is who is allowed to send messages inside the chat. Select 'admin' if you
     * only want the team members to message, or select 'everyone' if any member of
     * the whop can send messages.
     */
    whoCanPost?: InputMaybe<WhoCanPostTypes>;
}
/** Autogenerated input type of CreateCheckoutInstance */
interface CreateCheckoutInstanceInput {
    /**
     * The total amount to charge the customer in the specified currency. This should
     * be a positive decimal number (e.g., 99.99 for $99.99). The amount will be
     * validated against the plan's configured pricing upon payment.
     */
    amount: Scalars["Float"]["input"];
    /**
     * Optional URL where the customer will be redirected after completing or
     * canceling the checkout process, if the checkout is async. Should be a valid
     * HTTPS URL on your domain. NOTE: I am unsure how this is used yet. I believe
     * this is used for async APM checkouts, but we need to confirm.
     */
    callbackUrl?: InputMaybe<Scalars["String"]["input"]>;
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /**
     * The ID of the company buyer to use for the checkout session. It looks like
     * biz_xxx and is present when a company is installing an app.
     */
    companyBuyerId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The currency for the transaction. This determines how the amount will be processed and displayed to the customer. */
    currency: Currencies;
    /**
     * The ID of the ledger account to pay. It looks like ldgr_xxx. This is required
     * when doing dynamic checkouts with the pay modal. Either plan_id or
     * ledger_account_id must be provided, but not both.
     */
    ledgerAccountId?: InputMaybe<Scalars["ID"]["input"]>;
    /**
     * The internal order ID for tracking this checkout session. If this is coming
     * from our frontend client, pass our DynamoDB checkout session ID.
     */
    merchantOrderId: Scalars["String"]["input"];
    /**
     * The ID of the plan being purchased. It looks like plan_xxx. The plan
     * determines pricing, billing frequency, and what access the customer will
     * receive. Either plan_id or ledger_account_id must be provided, but not both.
     */
    planId?: InputMaybe<Scalars["ID"]["input"]>;
}
/** Autogenerated input type of CreateCheckoutSession */
interface CreateCheckoutSessionInput {
    /** The affiliate code to use for the checkout session */
    affiliateCode?: InputMaybe<Scalars["String"]["input"]>;
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The metadata to use for the checkout session */
    metadata?: InputMaybe<Scalars["JSON"]["input"]>;
    /** The ID of the plan to use for the checkout session */
    planId: Scalars["ID"]["input"];
    /** The URL to redirect the user to after the checkout session is created */
    redirectUrl?: InputMaybe<Scalars["String"]["input"]>;
}
/** Autogenerated input type of CreateCompanyMutedUser */
interface CreateCompanyMutedUserInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The time the user is muted until, in milliseconds. If not provided, the user will be muted indefinitely */
    mutedUntil?: InputMaybe<Scalars["Timestamp"]["input"]>;
    /** The ID of the user to mute */
    userId: Scalars["ID"]["input"];
}
/** Autogenerated input type of CreateCourse */
interface CreateCourseInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The cover image URL of the course */
    coverImage?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the experience to create the course in */
    experienceId: Scalars["ID"]["input"];
    /** The tagline of the course */
    tagline?: InputMaybe<Scalars["String"]["input"]>;
    /** The title of the course */
    title: Scalars["String"]["input"];
}
/** Autogenerated input type of CreateForum */
interface CreateForumInput {
    /** The ID of the access pass (whop) to attach the experience to. It looks like prod_xxxx. */
    accessPassId?: InputMaybe<Scalars["ID"]["input"]>;
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /**
     * The ID of an existing experience. If supplied, this new forum experience will
     * be attached to the first access pass (whop) of this experience. It looks like exp_xxxx.
     */
    experienceId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The expiration date of the experience to be created. After this timestamp, the experience is deleted. */
    expiresAt?: InputMaybe<Scalars["Timestamp"]["input"]>;
    /** The name of the forum experience to be created, shown to the user on the UI. */
    name: Scalars["String"]["input"];
    /**
     * The upsell plan details to add for the forum experience. This allows you to
     * require paid access for the forum within the whop.
     */
    price?: InputMaybe<UpsellPlanInput>;
    /**
     * This is who is allowed to create posts inside the forum. Select 'admin' if you
     * only want the team members to post, or select 'everyone' if any member of the
     * whop can post. Default value is 'admins'.
     */
    whoCanPost?: InputMaybe<ForumWhoCanPostTypes>;
}
/** Autogenerated input type of CreateForumPost */
interface CreateForumPostInput {
    /**
     * The access pass (whop) to create this post in (leave empty if providing a
     * forum experience ID). This will look like prod_xxxx.
     */
    accessPassId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The attachments for this post, such as videos or images. */
    attachments?: InputMaybe<Array<AttachmentInput>>;
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The content of the post. This is the main body of the post. Hidden if paywalled. */
    content: Scalars["String"]["input"];
    /**
     * The ID of the forum experience to send the message in. (leave empty if
     * creating a new experience). This will look like exp_xxxx.
     */
    forumExperienceId?: InputMaybe<Scalars["String"]["input"]>;
    /**
     * This is used to determine if the post should be sent as a 'mention'
     * notification to all of the users who are in the experience. This means that
     * anyone with 'mentions' enabled will receive a notification about this post.
     */
    isMention?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The ID of the parent post, if applicable (Used when making a comment) */
    parentId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The amount to paywall this post by. A paywalled post requires the user to purchase it in order to view its content. */
    paywallAmount?: InputMaybe<Scalars["Float"]["input"]>;
    /** The currency to paywall this post by. A paywalled post requires the user to purchase it in order to view its content. */
    paywallCurrency?: InputMaybe<Currencies>;
    /** Whether the post should be pinned */
    pinned?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The poll for this post. A poll lets you collect responses to a multiple choice question. */
    poll?: InputMaybe<PollInput>;
    /** The title of the post. Visible if paywalled. */
    title?: InputMaybe<Scalars["String"]["input"]>;
}
/** Autogenerated input type of CreateLesson */
interface CreateLessonInput {
    /** The ID of the chapter to create the lesson in */
    chapterId: Scalars["ID"]["input"];
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The content of the lesson */
    content?: InputMaybe<Scalars["String"]["input"]>;
    /** Days from course start until unlock */
    daysFromCourseStartUntilUnlock?: InputMaybe<Scalars["Int"]["input"]>;
    /** The type of the lesson */
    lessonType: LessonTypes;
    /** The title of the lesson */
    title?: InputMaybe<Scalars["String"]["input"]>;
}
/** Autogenerated input type of CreatePromoCode */
interface CreatePromoCodeInput {
    /** The access pass to lock the promo code to, if any. */
    accessPassId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The amount off (% or flat amount) for the promo. */
    amountOff: Scalars["StringFloat"]["input"];
    /** The monetary currency of the promo code. */
    baseCurrency: Currencies;
    /** Restricts promo use to only users who have churned from the company before. */
    churnedUsersOnly?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The specific code used to apply the promo at checkout. */
    code: Scalars["String"]["input"];
    /** Whether this promo code is for existing memberships only (cancelations) */
    existingMembershipsOnly?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The date/time of when the promo expires. */
    expirationDatetime?: InputMaybe<Scalars["Timestamp"]["input"]>;
    /** Restricts promo use to only users who have never purchased from the company before. */
    newUsersOnly: Scalars["Boolean"]["input"];
    /** The number of billing cycles the promo is applied for. */
    numberOfIntervals: Scalars["Int"]["input"];
    /** Restricts promo use to only be applied once per customer. */
    onePerCustomer?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The IDs of the plans that the affiliate can refer. */
    planIds?: InputMaybe<Array<Scalars["ID"]["input"]>>;
    /** The type (% or flat amount) of the promo. */
    promoType: PromoTypes;
    /** The quantity limit on the number of uses. */
    stock?: InputMaybe<Scalars["Int"]["input"]>;
    /** Whether or not the promo code should have unlimited stock. */
    unlimitedStock?: InputMaybe<Scalars["Boolean"]["input"]>;
}
/** Cancelation discounts for creator dashboard */
type CreatorDashboardCancelationDiscounts = "canceled" | "used_discount_and_canceled" | "used_discount_and_did_not_cancel";
/** The configuration for a chart. */
interface CreatorDashboardChartConfigInput {
    /** The access pass ids (tags) to filter the data by. */
    accessPassIds?: InputMaybe<Array<Scalars["ID"]["input"]>>;
    /** The currency to use for the chart. */
    currency?: InputMaybe<Currencies>;
    /** The start date to take into account. */
    from: Scalars["Timestamp"]["input"];
    /** The interval to group the data by. */
    interval?: InputMaybe<CreatorDashboardChartIntervals>;
    /** The time zone used for start of day calculations. */
    timeZone?: InputMaybe<Scalars["String"]["input"]>;
    /** The end date to take into account. */
    to: Scalars["Timestamp"]["input"];
    /** The week mode to group the data by. For details, look at https://clickhouse.com/docs/en/sql-reference/functions/date-time-functions#toweek */
    weekMode?: InputMaybe<Scalars["Int"]["input"]>;
}
/** Chart interval (period). */
type CreatorDashboardChartIntervals = "daily" | "hourly" | "monthly" | "weekly" | "yearly";
/** The different types of activity for a credit transaction */
type CreditTransactionActivityTypes = "deductions" | "deposits" | "withdrawals";
/** Values to filter the credits on. */
interface CreditTransactionFilters {
    /** Filter by activity type */
    activityType?: InputMaybe<CreditTransactionActivityTypes>;
    /** Filter by currency */
    currency?: InputMaybe<Currencies>;
    /** Filter by status */
    statuses?: InputMaybe<Array<CreditTransactionStatuses>>;
}
/** The statuses a credit transaction can have */
type CreditTransactionStatuses = 
/** Finalized */
"finalized"
/** Pending */
 | "pending";
/** The reasons for a credit transaction transfer */
type CreditTransactionTransferReasons = "bounty_payout" | "content_reward_fixed_payout" | "content_reward_payout" | "content_reward_return" | "creator_to_creator" | "creator_to_user" | "pool_top_up" | "team_member_payout" | "user_to_creator" | "user_to_user" | "wadmin_transferred_funds";
/** The statuses a credit transaction transfer can have */
type CreditTransactionTransferStatuses = "completed";
/** The type a credit transaction transfer can have */
type CreditTransactionTransferTypes = 
/** Admin */
"admin"
/** User */
 | "user";
/** Which columns can be used to sort. */
type CreditTransactionTransfersSortableColumns = "amount" | "created_at";
/** The eligible networks for a CryptoWallet */
type CryptoWalletNetworks = 
/** Bitcoin */
"bitcoin"
/** Ethereum */
 | "ethereum"
/** Solana */
 | "solana";
/** The available currencies on the platform */
type Currencies = "aed" | "all" | "amd" | "ape" | "ars" | "aud" | "bam" | "bgn" | "bhd" | "bob" | "brl" | "bsd" | "btc" | "cad" | "chf" | "clp" | "cop" | "crc" | "czk" | "dkk" | "dop" | "dzd" | "egp" | "etb" | "eth" | "eur" | "gbp" | "ghs" | "gmd" | "gtq" | "gyd" | "hkd" | "huf" | "idr" | "ils" | "inr" | "jmd" | "jod" | "jpy" | "kes" | "khr" | "krw" | "kwd" | "lkr" | "mad" | "mdl" | "mga" | "mkd" | "mnt" | "mop" | "mur" | "mxn" | "myr" | "nad" | "ngn" | "nok" | "nzd" | "omr" | "pen" | "php" | "pkr" | "pln" | "pyg" | "qar" | "ron" | "rsd" | "rub" | "rwf" | "sar" | "sek" | "sgd" | "thb" | "tnd" | "try" | "ttd" | "twd" | "tzs" | "usd" | "uyu" | "uzs" | "vnd" | "xcd" | "xof" | "zar";
/** The different types of custom CTAs that can be selected. */
type CustomCtas = 
/** Apply Now */
"apply_now"
/** Call Now */
 | "call_now"
/** Contact Us */
 | "contact_us"
/** Donate Now */
 | "donate_now"
/** Get Access */
 | "get_access"
/** Get Offer */
 | "get_offer"
/** Join */
 | "join"
/** Order Now */
 | "order_now"
/** Purchase */
 | "purchase"
/** Shop Now */
 | "shop_now"
/** Sign Up */
 | "sign_up"
/** Subscribe */
 | "subscribe";
interface CustomFieldInput {
    /** The type of the custom field. */
    fieldType: CustomFieldTypes;
    /** The ID of the custom field (if being updated) */
    id?: InputMaybe<Scalars["ID"]["input"]>;
    /** The name of the custom field. */
    name: Scalars["String"]["input"];
    /** The order of the field. */
    order?: InputMaybe<Scalars["Int"]["input"]>;
    /** The placeholder value of the field. */
    placeholder?: InputMaybe<Scalars["String"]["input"]>;
    /** Whether or not the field is required. */
    required?: InputMaybe<Scalars["Boolean"]["input"]>;
}
/** The type of the custom field. */
type CustomFieldTypes = 
/** Text */
"text";
/** Autogenerated input type of DeleteAssessmentQuestionImage */
interface DeleteAssessmentQuestionImageInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the attachment to delete */
    id: Scalars["ID"]["input"];
}
/** Autogenerated input type of DeleteChapter */
interface DeleteChapterInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the chapter to delete */
    id: Scalars["ID"]["input"];
}
/** Autogenerated input type of DeleteCompanyMutedUser */
interface DeleteCompanyMutedUserInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the user to unmute */
    userId: Scalars["ID"]["input"];
}
/** Autogenerated input type of DeleteLessonAttachment */
interface DeleteLessonAttachmentInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the attachment to delete */
    id: Scalars["ID"]["input"];
}
/** Autogenerated input type of DeleteLesson */
interface DeleteLessonInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the lesson to delete */
    id: Scalars["ID"]["input"];
}
/** Autogenerated input type of DeletePromoCode */
interface DeletePromoCodeInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The internal ID of the promo code to archive. */
    id: Scalars["ID"]["input"];
}
/** The type of device a user can use to access Whop */
type Device = "android" | "desktop_web" | "ios" | "mobile_web";
/** The status of the direct message. */
type DirectMessageStatus = 
/** Accepted */
"accepted"
/** Archived */
 | "archived"
/** Closed */
 | "closed"
/** Hidden */
 | "hidden"
/** Requested */
 | "requested";
/** Autogenerated input type of DirectUpload */
interface DirectUploadInput {
    /** The size of the file in bytes */
    byteSize?: InputMaybe<Scalars["Int"]["input"]>;
    /** The size of the file in bytes */
    byteSizeV2?: InputMaybe<Scalars["BigInt"]["input"]>;
    /** The checksum of the file */
    checksum: Scalars["String"]["input"];
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The content type of the file */
    contentType?: InputMaybe<Scalars["String"]["input"]>;
    /** The filename of the file */
    filename: Scalars["String"]["input"];
    /** The metadata of the file */
    metadata?: InputMaybe<Scalars["JSON"]["input"]>;
    /** Whether or not to use multipart upload. The file must be larger than 5MB */
    multipart?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The type of record to attach the file to */
    record: AttachableRecords;
}
/** The direction of the sort. */
type Direction = "asc" | "desc";
/** Image styles for discord_account. */
type DiscordAccountImageStyles = "s16" | "s24" | "s32" | "s40" | "s48" | "s64" | "s80" | "s128" | "s180";
/** The available discover statuses to choose from. */
type DiscoverStatuses = 
/** Live Discover */
"live_discover"
/** Not Available */
 | "not_available";
/** The dispute risk levels of a ledger account, derived from the ledger account stat */
type DisputeRiskLevels = 
/** At Risk */
"at_risk"
/** High */
 | "high"
/** Low */
 | "low"
/** Medium */
 | "medium"
/** Removal */
 | "removal";
/** The possible statuses of a dispute */
type DisputeStatuses = 
/** Closed */
"closed"
/** Lost */
 | "lost"
/** Needs Response */
 | "needs_response"
/** Other */
 | "other"
/** Under Review */
 | "under_review"
/** Warning Closed */
 | "warning_closed"
/** Warning Needs Response */
 | "warning_needs_response"
/** Warning Under Review */
 | "warning_under_review"
/** Won */
 | "won";
/** Which columns can be used to sort. */
type DisputesSortableColumns = "amount" | "created_at" | "final_amount" | "id" | "needs_response_by";
/** Sort options for DM channels */
type DmsChannelsSortTypes = "created_at" | "custom_name" | "last_post_sent_at" | "query";
/** The input to create a DMs feed */
interface DmsFeedInput {
    /** The collection ID for the feed */
    collectionIdentifier?: InputMaybe<Scalars["ID"]["input"]>;
    /** The custom name for the feed */
    customName?: InputMaybe<Scalars["String"]["input"]>;
    /** The unique identifier for the entity */
    id: Scalars["ID"]["input"];
    /** Whether the entity has been deleted */
    isDeleted?: InputMaybe<Scalars["Boolean"]["input"]>;
}
/** Input for a DMs feed member */
interface DmsFeedMemberInput {
    /** The ID of the DM channel */
    feedId: Scalars["ID"]["input"];
    /** The unique identifier for the post */
    id: Scalars["ID"]["input"];
    /** Whether the entity has been deleted */
    isDeleted?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** Timestamp when the member last viewed the channel (in milliseconds since Unix epoch) */
    lastViewedAt?: InputMaybe<Scalars["Float"]["input"]>;
    /** The notification preference for this member (all, mentions, none) */
    notificationPreference?: InputMaybe<DmsFeedMemberNotificationPreferences>;
    /** The status of the member (active, inactive, banned) */
    status?: InputMaybe<DmsFeedMemberStatuses>;
    /** The ID of the user */
    userId: Scalars["ID"]["input"];
}
/** The notification preferences for a DMs feed member */
type DmsFeedMemberNotificationPreferences = 
/** All */
"all"
/** Mentions */
 | "mentions"
/** None */
 | "none";
/** The statuses of a DMs feed member */
type DmsFeedMemberStatuses = 
/** Accepted */
"accepted"
/** Archived */
 | "archived"
/** Closed */
 | "closed"
/** Hidden */
 | "hidden"
/** Requested */
 | "requested";
/** The types of DMs feeds */
type DmsFeedTypes = "direct_message" | "group_chat";
/** The input to create a post in a feed */
interface DmsPostInput {
    /** The attachments for this message */
    attachments?: InputMaybe<Array<AttachmentInput>>;
    /** The content of the post */
    content?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the DM channel this post belongs to */
    feedId: Scalars["ID"]["input"];
    /** The type of the feed this post belongs to */
    feedType: FeedTypes;
    /**
     * The file attachments for this message
     * @deprecated Use attachments instead
     */
    fileAttachments?: InputMaybe<Array<FileAttachmentInput>>;
    /** The GIFs attached to this message */
    gifs?: InputMaybe<Array<GifInput>>;
    /** The unique identifier for the post */
    id: Scalars["ID"]["input"];
    /** Whether the entity has been deleted */
    isDeleted?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** Whether everyone was mentioned in the post */
    isEveryoneMentioned?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** Whether the post is pinned */
    isPinned?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The link embeds for this message */
    linkEmbeds?: InputMaybe<Array<LinkEmbedInput>>;
    /** The IDs of the users mentioned in the post */
    mentionedUserIds?: InputMaybe<Array<Scalars["ID"]["input"]>>;
    /** The ID of the parent post, if applicable */
    parentId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The poll for this message */
    poll?: InputMaybe<PollInput>;
    /** The ID of the message this is replying to, if applicable */
    replyingToPostId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The rich content of the post */
    richContent?: InputMaybe<Scalars["JSON"]["input"]>;
}
/** The types of post */
type DmsPostTypes = "automated" | "regular" | "system";
/** The types of earnings on the platform */
type EarningsReportPeriods = "last_7_days" | "last_24_hours" | "last_30_days" | "lifetime";
/** The types of earnings on the platform */
type EarningsTypes = 
/** Affiliate Payment */
"affiliate_payment"
/** Bounty Payout */
 | "bounty_payout"
/** Company Referral */
 | "company_referral"
/** Content Reward Fixed Payout */
 | "content_reward_fixed_payout"
/** Content Reward Payout */
 | "content_reward_payout"
/** Creator To Creator */
 | "creator_to_creator"
/** Creator To User */
 | "creator_to_user"
/** Membership Referral */
 | "membership_referral"
/** Payment Payout */
 | "payment_payout"
/** Team Member Payout */
 | "team_member_payout"
/** User To Creator */
 | "user_to_creator"
/** User To User */
 | "user_to_user";
/** The type of entity to fetch */
type EntityTypes = 
/** Chat Feed */
"chat_feed"
/** Dms Feed */
 | "dms_feed"
/** Dms Feed Member */
 | "dms_feed_member"
/** Dms Post */
 | "dms_post"
/** Forum Feed */
 | "forum_feed"
/** Forum Post */
 | "forum_post"
/** Livestream Feed */
 | "livestream_feed"
/** Muted User */
 | "muted_user"
/** Reaction */
 | "reaction";
/** Which columns can be used to sort. */
type EntriesSortableColumns = "created_at" | "id";
/** Values to filter entries on */
interface EntryFilters {
    /** How to order the results. */
    direction?: InputMaybe<Direction>;
    /** What the results should be ordered by. */
    order?: InputMaybe<EntryOrder>;
    /** A specific status */
    status?: InputMaybe<EntryStatus>;
    /** A list of statuses */
    statuses?: InputMaybe<Array<EntryStatus>>;
}
/** The order to sort the entries by */
type EntryOrder = "created_at" | "member_discord" | "member_username" | "selected";
/** The status of an entry to a waitlist or raffle. */
type EntryStatus = "any" | "approved" | "denied" | "pending";
/** An entry can either be a watlist or raffle */
type EntryTypes = "raffle" | "waitlist";
/** The different access levels for experiences (PUBLIC IS NEVER USED ANYMORE). */
type ExperienceAccessLevels = "private" | "public";
/** The type of content that this experience card contains */
type ExperienceActivityCardTypes = "availability" | "booking" | "bounty" | "bounty_submission" | "calendar_bookings_availability" | "calendar_bookings_booking" | "campaign" | "content" | "content_rewards_campaign" | "content_rewards_submission" | "course" | "dms_post" | "event" | "events_event" | "events_rsvp" | "feed_dms_post" | "feed_forum_post" | "feed_livestream_feed" | "forum_post" | "livestream_feed" | "rsvp" | "spin" | "submission" | "wheel" | "wheel_spin" | "wheel_wheel";
/** Values to filter plans on */
interface ExperienceFilters {
    /**
     * The access level to filter on.
     * @deprecated You can't filter by access level anymore
     */
    accessLevel?: InputMaybe<ExperienceAccessLevels>;
    /** The ID of the access pass to filter on. */
    accessPassId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The ID of the experience interface to filter on. */
    appId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The type of experience.. */
    experienceType?: InputMaybe<ExperienceTypes>;
    /** Either includes or excludes experiences on a given access pass. */
    onAccessPass?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The query to search for. */
    query?: InputMaybe<Scalars["String"]["input"]>;
}
/** The types of links that can be generated. */
type ExperienceLinkModes = "iframe_link" | "link";
/** The different types of experiences that can be created. */
type ExperienceTypes = 
/** Has Interface */
"has_interface";
/** The type of feed to fetch from */
type FeedTypes = 
/** Chat Feed */
"chat_feed"
/** Dms Feed */
 | "dms_feed"
/** Forum Feed */
 | "forum_feed"
/** Livestream Feed */
 | "livestream_feed"
/** Universal Post */
 | "universal_post"
/** User */
 | "user";
/** Input for a file attachment */
interface FileAttachmentInput {
    /** The aspect ratio of the image, if applicable */
    aspectRatio?: InputMaybe<Scalars["Float"]["input"]>;
    /** The type of the attachment (e.g., image, video) */
    attachmentType: FileAttachmentTypes;
    /** The blurred data URL for image preview */
    blurUrl?: InputMaybe<Scalars["String"]["input"]>;
    /** The attachment's content type (e.g., image/jpg, video/mp4) */
    contentType?: InputMaybe<Scalars["String"]["input"]>;
    /** The name of the file */
    fileName?: InputMaybe<Scalars["String"]["input"]>;
    /** The size of the file in bytes */
    fileSize?: InputMaybe<Scalars["Int"]["input"]>;
    /** The URL to access the file */
    fileUrl: Scalars["String"]["input"];
    /** The height of the image */
    height?: InputMaybe<Scalars["Int"]["input"]>;
    /** The ID of the file attachment */
    id?: InputMaybe<Scalars["ID"]["input"]>;
    /** The URL to access the thumbnail */
    thumbnailUrl?: InputMaybe<Scalars["String"]["input"]>;
    /** The width of the image */
    width?: InputMaybe<Scalars["Int"]["input"]>;
}
/** The different moderation results for a file attachment. */
type FileAttachmentModerationResultsTypes = 
/** Nsfw */
"nsfw";
/** The types of supported file attachments */
type FileAttachmentTypes = 
/** Audio */
"audio"
/** File */
 | "file"
/** Image */
 | "image"
/** Unknown */
 | "unknown"
/** Video */
 | "video";
/** The duration of a FlashSale */
type FlashSaleDurations = 
/** Forever */
"forever"
/** Once */
 | "once";
/** The status of a FlashSale */
type FlashSaleStatuses = 
/** Active */
"active"
/** Archived */
 | "archived"
/** Draft */
 | "draft";
/** Email notification preference option for a forum feed */
type ForumEmailNotificationPreferences = "all_admin_posts" | "none" | "only_weekly_summary";
/** The layout display option of a forum feed */
type ForumLayoutTypes = "blog" | "feed";
/** The types of post */
type ForumPostTypes = "automated" | "regular" | "system";
/** Who can comment on a forum feed */
type ForumWhoCanCommentTypes = "admins" | "everyone";
/** Who can post on a forum feed */
type ForumWhoCanPostTypes = "admins" | "everyone";
/** The friendly status of a receipt */
type FriendlyReceiptStatus = "auto_refunded" | "canceled" | "dispute_warning" | "drafted" | "failed" | "incomplete" | "open_dispute" | "open_resolution" | "partially_refunded" | "past_due" | "pending" | "price_too_low" | "refunded" | "succeeded" | "uncollectible" | "unresolved";
/** A gateway for a payment token. */
type GatewayTypes = 
/** Multi Psp */
"multi_psp"
/** Paypal */
 | "paypal";
/** Input for a GIF attachment */
interface GifInput {
    /** The height of the GIF in pixels */
    height: Scalars["Int"]["input"];
    /** The original URL of the GIF */
    originalUrl: Scalars["String"]["input"];
    /** The URL for a preview image of the GIF */
    previewUrl: Scalars["String"]["input"];
    /** The provider of the GIF */
    provider: GifProviders;
    /** The unique identifier of the GIF */
    slug: Scalars["ID"]["input"];
    /** The title of the GIF */
    title: Scalars["String"]["input"];
    /** The URL of the full GIF */
    url: Scalars["String"]["input"];
    /** The width of the GIF in pixels */
    width: Scalars["Int"]["input"];
}
/** The types of supported GIFs providers */
type GifProviders = 
/** Giphy */
"giphy";
/** The different statuses of the global affiliate program for an access pass. */
type GlobalAffiliateStatuses = "disabled" | "enabled";
/** The scope of the results to return. */
type HubMembershipStatus = "active" | "inactive";
/** Predefined attachment variants */
type ImageAttachmentVariants = "legacy" | "original" | "s16" | "s20" | "s24" | "s32" | "s40" | "s48" | "s48fit" | "s64" | "s64fit" | "s80" | "s80fit" | "s128" | "s180" | "s250x125" | "s250x125fit" | "s440x220" | "s440x220fit" | "s500x250" | "s500x250fit" | "s512x288" | "s512x288fit" | "s600x200" | "s600x400" | "s600x400fit" | "s720x1280" | "s720x1280fit" | "s800x200" | "s900x300" | "s1000x500" | "s1000x500fit" | "s1080x1920" | "s1080x1920fit" | "s1080x1920fit_h264_vq7" | "s1200x630" | "s1280x720" | "s1280x720fit" | "s1600x400" | "s1920x1080" | "s1920x1080fit" | "s1920x1080fit_h264_vq7" | "x2" | "x5";
/** Allowed image file types for uploading to the platform */
type ImageExtensions = "GIF" | "JPEG" | "JPG" | "PNG" | "SVG" | "WEBP";
/** Image styles for image. */
type ImageImageStyles = "original" | "s16" | "s20" | "s24" | "s32" | "s40" | "s48" | "s48fit" | "s64" | "s64fit" | "s80" | "s80fit" | "s128" | "s180" | "s250x125" | "s250x125fit" | "s440x220" | "s440x220fit" | "s500x250" | "s500x250fit" | "s512x288" | "s512x288fit" | "s600x200" | "s600x400" | "s600x400fit" | "s800x200" | "s900x300" | "s1000x500" | "s1000x500fit" | "s1200x630" | "s1280x720" | "s1280x720fit" | "s1600x400" | "s1920x1080" | "s1920x1080fit";
/** The different industry types a company can be in. */
type IndustryTypes = 
/** Accessories */
"accessories"
/** Agencies */
 | "agencies"
/** Ai */
 | "ai"
/** Ai Agency */
 | "ai_agency"
/** Amazon Fba */
 | "amazon_fba"
/** Auto Repair Shop */
 | "auto_repair_shop"
/** Beauty And Personal Care */
 | "beauty_and_personal_care"
/** Bootcamps */
 | "bootcamps"
/** Business */
 | "business"
/** Careers */
 | "careers"
/** Clipping */
 | "clipping"
/** Clothing */
 | "clothing"
/** Coaching Agency */
 | "coaching_agency"
/** Coffee Shop */
 | "coffee_shop"
/** Concerts */
 | "concerts"
/** Convention */
 | "convention"
/** Customer Support Agency */
 | "customer_support_agency"
/** Dating */
 | "dating"
/** Design Agency */
 | "design_agency"
/** Development Agency */
 | "development_agency"
/** Ecommerce */
 | "ecommerce"
/** Electronics And Gadgets */
 | "electronics_and_gadgets"
/** Fitness */
 | "fitness"
/** Fitness Gear */
 | "fitness_gear"
/** Food And Beverages */
 | "food_and_beverages"
/** Gym */
 | "gym"
/** Health And Wellness */
 | "health_and_wellness"
/** Home Goods */
 | "home_goods"
/** Home Services */
 | "home_services"
/** Hotel Lodging */
 | "hotel_lodging"
/** Kindle Book Publishing */
 | "kindle_book_publishing"
/** Marketing Agency */
 | "marketing_agency"
/** Masterminds */
 | "masterminds"
/** Medical Dentist Office */
 | "medical_dentist_office"
/** Meetups */
 | "meetups"
/** Other */
 | "other"
/** Parties */
 | "parties"
/** Personal Development */
 | "personal_development"
/** Personal Finance */
 | "personal_finance"
/** Public Speaking */
 | "public_speaking"
/** Real Estate */
 | "real_estate"
/** Recruiting Agency */
 | "recruiting_agency"
/** Reselling */
 | "reselling"
/** Restaurant */
 | "restaurant"
/** Retail Store */
 | "retail_store"
/** Sales */
 | "sales"
/** Sales Agency */
 | "sales_agency"
/** Salon Spa */
 | "salon_spa"
/** Social Media */
 | "social_media"
/** Software */
 | "software"
/** Spirituality */
 | "spirituality"
/** Sports Betting */
 | "sports_betting"
/** Supplements */
 | "supplements"
/** Trading */
 | "trading"
/** Travel */
 | "travel"
/** Vas */
 | "vas"
/** Video Games */
 | "video_games"
/** Webinars */
 | "webinars";
/** The different error codes for instant payouts */
type InstantPayoutErrorCodes = 
/** Account Daily Limit Reached */
"account_daily_limit_reached"
/** Amount Too High */
 | "amount_too_high"
/** Feature Disabled */
 | "feature_disabled"
/** Only Us Accounts */
 | "only_us_accounts"
/** Only Usd */
 | "only_usd"
/** Platform Daily Limit Reached */
 | "platform_daily_limit_reached"
/** Restricted Account */
 | "restricted_account"
/** Unsupported External Account */
 | "unsupported_external_account";
/** A type of order that the ItemOrdering represents. */
type ItemOrderingOrderTypes = 
/** Experience */
"experience"
/** Hub Creator */
 | "hub_creator"
/** Hub Customer */
 | "hub_customer";
/** The available languages for a course */
type Languages = 
/** Bg */
"bg"
/** Ca */
 | "ca"
/** Cs */
 | "cs"
/** Da */
 | "da"
/** De */
 | "de"
/** El */
 | "el"
/** En */
 | "en"
/** Es */
 | "es"
/** Fi */
 | "fi"
/** Fr */
 | "fr"
/** Hr */
 | "hr"
/** It */
 | "it"
/** Nl */
 | "nl"
/** No */
 | "no"
/** Pl */
 | "pl"
/** Pt */
 | "pt"
/** Ro */
 | "ro"
/** Ru */
 | "ru"
/** Sk */
 | "sk"
/** Sv */
 | "sv"
/** Tr */
 | "tr"
/** Uk */
 | "uk";
/** The different types of leaderboards that can be fetched */
type LeaderboardTypes = "affiliate_earnings" | "average_time_spent" | "competition" | "money_earned_last_7_days" | "money_earned_last_24_hours" | "money_earned_last_30_days" | "new_users" | "top_rated" | "total_time_spent" | "usd_gmv" | "whop_partners_earnings_last_30_days" | "whop_partners_gtv_last_30_days";
/** Which columns can be used to sort. */
type LeadsSortableColumns = "created_at" | "id";
/** The standing of a ledger account, based on their dispute risk scores */
type LedgerAccountStandings = "at_risk" | "good";
/** The types of ledgers that can be created. */
type LedgerTypes = 
/** Pool */
"pool"
/** Primary */
 | "primary";
/** The different withdrawal frequencies a LedgerAccount can have */
type LedgerWithdrawalFrequencies = 
/** Daily */
"daily"
/** Manual */
 | "manual"
/** Monthly */
 | "monthly"
/** Weekly */
 | "weekly";
/** The different statuses a LedgerAccount's withdrawal_status can be */
type LedgerWithdrawalStatuses = 
/** Active */
"active"
/** Inactive */
 | "inactive";
/** The available types for a lesson */
type LessonTypes = 
/** Knowledge check */
"knowledge_check"
/** Multi */
 | "multi"
/** Pdf */
 | "pdf"
/** Quiz */
 | "quiz"
/** Text */
 | "text"
/** Video */
 | "video";
/** The available visibilities for a lesson. Determines how / whether a lesson is visible to users. */
type LessonVisibilities = 
/** Hidden */
"hidden"
/** Visible */
 | "visible";
/** The order to sort liked discover access passes by. */
type LikedDiscoverAccessPassesOrder = 
/** Sort by promo code presence first, then rated at date */
"promo_code_and_rated_at"
/** Sort by when the access pass was rated */
 | "rated_at";
/** Input for a link embed */
interface LinkEmbedInput {
    /** The URL of the linked content */
    url: Scalars["String"]["input"];
}
/** Possible livestream destinations a user can restream to */
type LivestreamDestination = 
/** Facebook */
"facebook"
/** Instagram */
 | "instagram"
/** Kick */
 | "kick"
/** Rumble */
 | "rumble"
/** Steam */
 | "steam"
/** Telegram */
 | "telegram"
/** Twitch */
 | "twitch"
/** Vimeo */
 | "vimeo"
/** X */
 | "x"
/** Youtube */
 | "youtube";
/** Input for a livestream feed */
interface LivestreamFeedInput {
    /** Whether or not media is banned in this livestream */
    banMedia?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** Whether or not URLs are banned in this livestream */
    banUrls?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** List of banned words in this livestream */
    bannedWords?: InputMaybe<Array<Scalars["String"]["input"]>>;
    /** The description of this livestream */
    description?: InputMaybe<Scalars["String"]["input"]>;
    /** The empty timeout of this livestream */
    emptyTimeout?: InputMaybe<Scalars["Int"]["input"]>;
    /** The unique identifier for the feed */
    id?: InputMaybe<Scalars["ID"]["input"]>;
    /** Whether the entity has been deleted */
    isDeleted?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The number of participants that can join the livestream (0 is unlimited) */
    maxParticipants?: InputMaybe<Scalars["Int"]["input"]>;
    /** The metadata of this livestream */
    metadata?: InputMaybe<Scalars["JSON"]["input"]>;
    /** Whether or not live reactions are enabled in this livestream */
    reactionsEnabled?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The destinations to restream to */
    restreamDestinations?: InputMaybe<Array<LivestreamDestination>>;
    /** The scheduled time of this livestream */
    scheduledAt?: InputMaybe<Scalars["Timestamp"]["input"]>;
    /** The title of this livestream */
    title?: InputMaybe<Scalars["String"]["input"]>;
    /** The number of seconds a user needs to wait before posting again, if any */
    userPostsCooldownSeconds?: InputMaybe<Scalars["Int"]["input"]>;
    /** Who can post on this livestream */
    whoCanPost?: InputMaybe<LivestreamWhoCanPostTypes>;
    /** Who can react on this livestream */
    whoCanReact?: InputMaybe<LivestreamWhoCanReactTypes>;
}
/** Who can post on a livestream feed */
type LivestreamWhoCanPostTypes = "admins" | "everyone";
/** Who can react on a livestream feed */
type LivestreamWhoCanReactTypes = "everyone" | "no_one";
/** Values to filter made for you affiliates on */
interface MadeForYouPlanFilters {
    /** Search by plan name, product name, or company name */
    query?: InputMaybe<Scalars["String"]["input"]>;
}
/** The sub-items that should be displayed for the stripe account. */
type ManagementItems = "billing_details" | "country" | "merchant_of_record" | "payout_frequency";
/** Autogenerated input type of MarkLessonAsCompleted */
interface MarkLessonAsCompletedInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the lesson to mark as completed */
    lessonId: Scalars["ID"]["input"];
}
/** The columns that can be used to order. */
type MarketplaceCategoryOrder = "created_at" | "id" | "live_access_pass_count" | "live_page_count" | "manual_position" | "name" | "random";
/** The marketplace types that are available for categories. */
type MarketplaceCategoryTypes = 
/** App */
"app"
/** Regular */
 | "regular";
/** The available marketplace statuses to choose from. */
type MarketplaceStatuses = "live_marketplace" | "not_available" | "pending_review";
type Media = "audio" | "image" | "other" | "video";
/** The different most recent actions a member can have. */
type MemberMostRecentActions = 
/** Canceling */
"canceling"
/** Churned */
 | "churned"
/** Drafted */
 | "drafted"
/** Expiring */
 | "expiring"
/** Finished Split Pay */
 | "finished_split_pay"
/** Joined */
 | "joined"
/** Left */
 | "left"
/** Paid Once */
 | "paid_once"
/** Paid Subscriber */
 | "paid_subscriber"
/** Past Due */
 | "past_due"
/** Paused */
 | "paused"
/** Pending Entry */
 | "pending_entry"
/** Renewing */
 | "renewing"
/** Trialing */
 | "trialing";
/** The different statuses a Member can have. */
type MemberStatuses = 
/** Drafted */
"drafted"
/** Joined */
 | "joined"
/** Left */
 | "left";
/** The type of subtext to display for a member */
type MemberSubtextTypes = 
/** Canceled On */
"canceled_on"
/** Canceling On */
 | "canceling_on"
/** Ending On */
 | "ending_on"
/** Finished Split Pay At */
 | "finished_split_pay_at"
/** Next Payment Attempt */
 | "next_payment_attempt"
/** Past Due */
 | "past_due"
/** Paused At */
 | "paused_at"
/** Renewing On */
 | "renewing_on"
/** Trial Canceling On */
 | "trial_canceling_on"
/** Trial Ends At */
 | "trial_ends_at"
/** Unresolved At */
 | "unresolved_at";
/** Which columns can be used to sort. */
type MembersSortableColumns = "created_at" | "id" | "joined_at" | "most_recent_action" | "usd_total_spent";
/** The actions that can be performed on a membership */
type MembershipActions = "add_discord_roles" | "add_free_days" | "cancel_membership" | "fulfill_trading_view_indicators" | "pause_subscription_payments" | "reset_license" | "retry_payment" | "shuffle_license" | "terminate_membership" | "unlink_discord" | "unpause_subscription_payments";
/** The state of a membership, based on a company's accepted sub statuses. */
type MembershipHeaderStatus = "active" | "churned";
/** Image styles for membership. */
type MembershipImageStyles = "s40";
/** The payment processor used for a membership */
type MembershipPaymentProcessor = 
/** Apple */
"apple"
/** Coinbase */
 | "coinbase"
/** Crypto */
 | "crypto"
/** Free */
 | "free"
/** Multi Psp */
 | "multi_psp"
/** Paypal */
 | "paypal"
/** Platform Balance */
 | "platform_balance"
/** Sezzle */
 | "sezzle"
/** Splitit */
 | "splitit"
/** Stripe */
 | "stripe";
/** Whether or not to send push notifications to the user of a membership */
type MembershipPushNotification = 
/** Disabled */
"disabled"
/** Enabled */
 | "enabled";
/** The status of a membership */
type MembershipStatus = 
/** Active */
"active"
/** Canceled */
 | "canceled"
/** Completed */
 | "completed"
/** Drafted */
 | "drafted"
/** Expired */
 | "expired"
/** Past Due */
 | "past_due"
/** Trialing */
 | "trialing"
/** Unresolved */
 | "unresolved";
/** Which columns can be used to sort. */
type MembershipsSortableColumns = "canceled_at" | "created_at" | "date_joined" | "id" | "status" | "total_spend";
/** The different moderation results for an attachment */
type ModerationResults = 
/** Nsfw */
"nsfw";
/** Autogenerated input type of MoveCourse */
interface MoveCourseInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the course to move */
    courseId: Scalars["ID"]["input"];
    /** The experience to move the course into */
    destinationExperienceId: Scalars["ID"]["input"];
}
/** Input for a feed muted member */
interface MutedUserInput {
    /** The ID of the feed */
    feedId: Scalars["ID"]["input"];
    /** The feed type */
    feedType?: FeedTypes;
    /** The unique identifier for the muted user */
    id: Scalars["ID"]["input"];
    /** Whether the entity has been deleted */
    isDeleted?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The time the user is muted till */
    mutedUntil?: InputMaybe<Scalars["Float"]["input"]>;
    /** The ID of the user */
    userId: Scalars["ID"]["input"];
}
/** Mux asset statuses */
type MuxAssetStatuses = 
/** Created */
"created"
/** Ready */
 | "ready"
/** Uploading */
 | "uploading";
/** The different types of Stripe Accounts. */
type NormalizedAccountTypes = "custom" | "express" | "personal" | "standard" | "whop_credit";
/** The channel for a notification preference */
type NotificationPreferenceChannel = 
/** In App */
"in_app"
/** Mobile */
 | "mobile";
/** Values to filter preferences on */
interface NotificationPreferencesFilters {
    /** The channel to retrieve a user's preferences for */
    channel?: InputMaybe<NotificationPreferenceChannel>;
    /** The company to retrieve a user's preferences for */
    companyId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The company team ID to retrieve a user's preferences for */
    companyTeamId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The experience to retrieve a user's preferences for */
    experienceId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The topic to retrieve a user's preferences for */
    topicId?: InputMaybe<Scalars["ID"]["input"]>;
}
/** The status of the notification topic. If it's active, they will send. */
type NotificationTopicStatus = 
/** Active */
"active"
/** Inactive */
 | "inactive";
/** The visibility of the notification topic. If it's hidden, it won't show on the UI. */
type NotificationTopicVisibility = 
/** Hidden */
"hidden"
/** Visible */
 | "visible";
/** Values to filter notifications on */
interface NotificationsV4Filters {
    /**
     * The client's last fetched at timestamp. If passed will only return
     * notifications created after this timestamp. NOT YET IMPLEMENTED
     */
    clientLastFetchedAt?: InputMaybe<Scalars["Timestamp"]["input"]>;
    /** The company ID that you want to filter by. Will return notifications sent to this team. */
    companyTeamId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The experience ID that you want to filter by */
    experienceId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The experience IDs that you want to filter by. Overrides experience_id. */
    experienceIds?: InputMaybe<Array<Scalars["ID"]["input"]>>;
    /** Whether the notifications are mentions or not */
    isMention?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** Whether to only return unread notifications */
    unreadOnly?: InputMaybe<Scalars["Boolean"]["input"]>;
}
/** Values to paginate notifications on */
interface NotificationsV4Pagination {
    /** Filter all notifications made after this */
    after?: InputMaybe<Scalars["ID"]["input"]>;
    /** Filter all notifications made before this */
    before?: InputMaybe<Scalars["ID"]["input"]>;
    /** The number of notifications to return. Default is 50 */
    limit?: InputMaybe<Scalars["Int"]["input"]>;
}
/** The different providers that can be used for onboarding a ledger account. */
type OnboardingProviders = "generic" | "stripe";
/** The different onboarding types for a company. */
type OnboardingTypes = 
/** Payments */
"payments"
/** Products */
 | "products";
/** The high level payment processor options. */
type PaymentMethods = 
/** Apple */
"apple"
/** Coinbase */
 | "coinbase"
/** Crypto */
 | "crypto"
/** Free */
 | "free"
/** Multi Psp */
 | "multi_psp"
/** Nft */
 | "nft"
/** Paypal */
 | "paypal"
/** Platform Balance */
 | "platform_balance"
/** Sezzle */
 | "sezzle"
/** Splitit */
 | "splitit"
/** Stripe */
 | "stripe";
/** The high level payment processor options. */
type PaymentProcessor = "apple" | "coinbase" | "free" | "multi_psp" | "paypal" | "platform_balance" | "sezzle" | "splitit" | "stripe" | "venmo";
/** The different payment providers. */
type PaymentProviders = 
/** Apple */
"apple"
/** Coinbase */
 | "coinbase"
/** Multi Psp */
 | "multi_psp"
/** Paypal */
 | "paypal"
/** Platform Balance */
 | "platform_balance"
/** Sezzle */
 | "sezzle"
/** Splitit */
 | "splitit"
/** Stripe */
 | "stripe";
/** The different approval statuses an account can have. */
type PaymentsApprovalStatuses = 
/** Approved */
"approved"
/** Monitoring */
 | "monitoring"
/** Pending */
 | "pending"
/** Rejected */
 | "rejected";
/** The different providers a payout account can be. */
type PayoutAccountProviders = 
/** Masspay */
"masspay";
/** The different statuses payout account can be. */
type PayoutAccountStatuses = 
/** Connected */
"connected"
/** Disabled */
 | "disabled"
/** Needs Completion */
 | "needs_completion";
/** The different delivery_types for a payout or payout destination. */
type PayoutDeliveryTypes = 
/** Bank Deposit */
"bank_deposit"
/** Bill */
 | "bill"
/** Cash Pickup */
 | "cash_pickup"
/** Cryptocurrency */
 | "cryptocurrency"
/** Home Delivery */
 | "home_delivery"
/** Masspay Card */
 | "masspay_card"
/** Mobile Wallet */
 | "mobile_wallet"
/** Paper Check */
 | "paper_check";
/** The different platform statuses a payout destination can be in. */
type PayoutDestinationPlatformStatuses = 
/** Hidden */
"hidden"
/** Visible */
 | "visible";
/** The different providers a payout destination can be. */
type PayoutDestinationProviders = 
/** Masspay */
"masspay";
/** The different statuses a payout destination can be in. */
type PayoutDestinationStatuses = 
/** Active */
"active"
/** Disabled */
 | "disabled";
/** The different destination types for a payout destination. */
type PayoutDestinationTypes = 
/** Instant */
"instant"
/** Regular */
 | "regular";
/** The interval at which a Connected Account is paid out */
type PayoutIntervals = "daily" | "manual" | "monthly" | "weekly";
/** The payout methods that can be configured for a company. */
type PayoutMethods = "coinbase_commerce" | "paypal" | "stripe";
/** The different statuses as payout object can be. */
type PayoutStatuses = 
/** Canceled */
"canceled"
/** Completed */
 | "completed"
/** Error */
 | "error"
/** Hold */
 | "hold"
/** Pending */
 | "pending"
/** Processing */
 | "processing"
/** Ready For Pickup */
 | "ready_for_pickup"
/** Scheduled */
 | "scheduled";
/** The different types of attributes that can be saved for a PayoutTokenAttribute. */
type PayoutTokenAttributeDataTypes = 
/** Address1 */
"Address1"
/** Bank Account Branch Number */
 | "BankAccountBranchNumber"
/** Bank Account Name */
 | "BankAccountName"
/** Bank Account Number */
 | "BankAccountNumber"
/** Bank Account Type */
 | "BankAccountType"
/** Bank City */
 | "BankCity"
/** Bank Name */
 | "BankName"
/** Bank Routing Number */
 | "BankRoutingNumber"
/** Bank State */
 | "BankState"
/** Bill Reference Number */
 | "BillReferenceNumber"
/** Birth Country */
 | "BirthCountry"
/** Card Expiration */
 | "CardExpiration"
/** Card Number */
 | "CardNumber"
/** Card Zip */
 | "CardZip"
/** City */
 | "City"
/** Country */
 | "Country"
/** Date Of Birth */
 | "DateOfBirth"
/** Employment Address */
 | "EmploymentAddress"
/** Employment Name */
 | "EmploymentName"
/** Employment Occupation */
 | "EmploymentOccupation"
/** Employment Phone */
 | "EmploymentPhone"
/** Employment Supervisor */
 | "EmploymentSupervisor"
/** Gender */
 | "Gender"
/** Id Selfie Collection */
 | "IDSelfieCollection"
/** I Frame Payment Collection */
 | "IFramePaymentCollection"
/** Identification Expiration */
 | "IdentificationExpiration"
/** Identification Number */
 | "IdentificationNumber"
/** Identification Type */
 | "IdentificationType"
/** Maiden Name */
 | "MaidenName"
/** Phone Number */
 | "PhoneNumber"
/** Postal Code */
 | "PostalCode"
/** Relationship */
 | "Relationship"
/** Remittance Reason */
 | "RemittanceReason"
/** Swift */
 | "SWIFT"
/** Second Last Name */
 | "SecondLastName"
/** Social Security */
 | "SocialSecurity"
/** Source Of Funds */
 | "SourceOfFunds";
/** The different types of inputs for a payout token attribute. This is the type of form that will be submitted in the data. */
type PayoutTokenAttributeInputTypes = 
/** Date */
"date"
/** Options */
 | "options"
/** Text */
 | "text";
/** The type of information being submitted in the value field. */
type PayoutTokenAttributeValueTypes = "raw" | "vault_token";
/** The different providers a payout token can be. */
type PayoutTokenProviders = 
/** Masspay */
"masspay";
/** The different statuses a payout token can have. */
type PayoutTokenStatuses = 
/** Active */
"active"
/** Broken */
 | "broken"
/** Created */
 | "created";
/** Whether a payout is one-time or recurring */
type PayoutTypes = 
/** Flat Fee */
"flat_fee"
/** Percentage */
 | "percentage";
/** Statuses for paypal accounts */
type PaypalAccountStatuses = "broken" | "connected" | "disabled_by_whop" | "oauth_integration_not_found" | "payments_not_receivable" | "primary_email_not_confirmed";
/** The status of an entry for a perk. */
type PerkStatus = "completed" | "pending";
/** The type of direct link to generate */
type PlanDirectLink = "checkout" | "product_page";
/** Values to filter plans on */
interface PlanFilters {
    /** A specific access pass to filter the scope by. */
    accessPassId?: InputMaybe<Scalars["ID"]["input"]>;
    /** If true, it returns plans that have affiliates */
    affiliates?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** How to order the results. */
    direction?: InputMaybe<Direction>;
    /** What to order the results by. */
    order?: InputMaybe<PlanOrder>;
    /** If true, it returns plans that have member/passholder affiliates set to true */
    passholderAffiliate?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The text that is being searched. */
    query?: InputMaybe<Scalars["String"]["input"]>;
    /** If true, it returns raffles that have ended. */
    raffleEnded?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The release method to filter the scope by. */
    releaseMethod?: InputMaybe<ReleaseMethod>;
    /** The visibility to filter the scope by. */
    visibility?: InputMaybe<VisibilityFilter>;
}
/** The order to sort the results by. */
type PlanOrder = "active_memberships_count" | "affiliates" | "created_at" | "expires_at" | "internal_notes";
/** The type of plan that can be attached to an access pass */
type PlanTypes = 
/** One Time */
"one_time"
/** Renewal */
 | "renewal";
/** The ways a relation of Plans can be ordered */
type PlansOrder = "active_members_count" | "created_at" | "expires_at" | "id" | "internal_notes";
/** Which columns can be used to sort. */
type PlansSortableColumns = "active_members_count" | "active_memberships_count" | "cached_initial_price_due" | "cached_usd_income" | "created_at" | "id" | "stock";
/** Input type for creating a poll in a feed post */
interface PollInput {
    /** The options for the poll. Must have sequential IDs starting from 1 */
    options: Array<PollOptionInput>;
}
/** Input type for a single poll option */
interface PollOptionInput {
    /** Sequential ID for the poll option (starting from '1') */
    id: Scalars["String"]["input"];
    /** The text of the poll option */
    text: Scalars["String"]["input"];
}
/** The type of feed to fetch from */
type PostTypes = 
/** Dms */
"dms"
/** Dms Post */
 | "dms_post"
/** Forum Post */
 | "forum_post";
/** Autogenerated input type of ProcessEntities */
interface ProcessEntitiesInput {
    /** The ID of the app */
    appId: Scalars["ID"]["input"];
    /** The chat feed posts to process */
    chatFeeds?: InputMaybe<Array<ChatFeedInput>>;
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The DMs feed members to process */
    dmsFeedMembers?: InputMaybe<Array<DmsFeedMemberInput>>;
    /** The DMs feeds to process */
    dmsFeeds?: InputMaybe<Array<DmsFeedInput>>;
    /** The DMs posts to process */
    dmsPosts?: InputMaybe<Array<DmsPostInput>>;
    /** The livestream feeds to process */
    livestreamFeeds?: InputMaybe<Array<LivestreamFeedInput>>;
    /** The chat feed muted members to process */
    mutedUsers?: InputMaybe<Array<MutedUserInput>>;
    /** The reactions to process */
    reactions?: InputMaybe<Array<ReactionInput>>;
}
/** Types of product highlight */
type ProductHighlightTypes = "benefit" | "pricing_feature" | "qualification" | "who_this_is_for";
/** Image styles for product. */
type ProductImageStyles = "s48" | "s48fit" | "s64" | "s64fit" | "s80" | "s80fit" | "s128" | "s180" | "s250x125" | "s250x125fit" | "s440x220" | "s440x220fit" | "s500x250" | "s500x250fit" | "s512x288" | "s512x288fit" | "s600x400" | "s600x400fit" | "s1000x500" | "s1000x500fit" | "s1280x720" | "s1280x720fit" | "s1920x1080" | "s1920x1080fit";
/** The product_type of the ProductTaxCode */
type ProductTaxCodeProductTypes = "digital" | "physical" | "services";
/** Values to filter users on */
interface ProductUserFilters {
    /** How to order the results. */
    direction?: InputMaybe<Direction>;
    /** What to order the results by. */
    order?: InputMaybe<ProductUserOrder>;
    /** The text that is being searched. */
    query?: InputMaybe<Scalars["String"]["input"]>;
}
/** The order to sort the results by. */
type ProductUserOrder = "date_joined" | "last_seen_at" | "name" | "paid_out_by_company" | "time_spent_in_whop";
/** The different levels of visibility for resources */
type ProfileVisibilities = "hidden" | "visible";
/** Values to filter promo codes on */
interface PromoCodeFilters {
    /** How to order the results. */
    direction?: InputMaybe<Direction>;
    /** Filter whether to return active or expired (archived and inactive). */
    newStatus?: InputMaybe<PromoCodeNewStatus>;
    /** What to order the results by. */
    order?: InputMaybe<PromoCodeOrder>;
    /** The text that is being searched. */
    query?: InputMaybe<Scalars["String"]["input"]>;
    /** The state of promo code. */
    status?: InputMaybe<PromoCodeStatus>;
}
/** The new statuses to filter the results by. */
type PromoCodeNewStatus = "active" | "expired";
/** The order to sort the results by. */
type PromoCodeOrder = "code" | "created_at";
/** Statuses for promo codes */
type PromoCodeStatus = 
/** Active */
"active"
/** Archived */
 | "archived"
/** Inactive */
 | "inactive";
/** Which columns can be used to sort. */
type PromoCodesSortableColumns = "created_at" | "expiration_datetime" | "id";
/** The duration setting for the promo code */
type PromoDurations = 
/** Forever */
"forever"
/** Once */
 | "once"
/** Repeating */
 | "repeating";
/** The type of promo code used to discount a plan */
type PromoTypes = 
/** Flat Amount */
"flat_amount"
/** Percentage */
 | "percentage";
/** The order to sort the results by. */
type PublicAccessPassesOrder = "average_review_rating" | "average_time_spent_24_hours" | "created_at" | "global_affiliate_percentage" | "highest_bounties" | "id" | "last_24_hours_total_seconds" | "most_affiliate_earnings_24_hours" | "most_money_made_24_hours" | "most_reviews_7_days" | "most_reviews_24_hours" | "newest_arrivals" | "trending" | "trending_3_hours";
/** The order to sort the results by. */
type PublicBountiesOrder = "created_at" | "total_paid";
/** Input for a reaction */
interface ReactionInput {
    /** The ID of the feed this reaction belongs to */
    feedId: Scalars["ID"]["input"];
    /** The type of the feed this reaction belongs to */
    feedType: FeedTypes;
    /** The unique identifier for the reaction */
    id: Scalars["ID"]["input"];
    /** Whether the entity has been deleted */
    isDeleted?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The ID of the post this reaction belongs to */
    postId: Scalars["ID"]["input"];
    /** The type of the post (e.g., 'dms_post') */
    postType: PostTypes;
    /** The type of reaction (e.g., 'like', 'vote', 'view', 'emoji') */
    reactionType: ReactionTypes;
    /** The score of the reaction */
    score: Scalars["Int"]["input"];
    /** The value of the reaction (e.g., specific emoji) */
    value: Scalars["String"]["input"];
}
/** The type of reactions */
type ReactionTypes = 
/** Emoji */
"emoji"
/** Like */
 | "like"
/** View */
 | "view"
/** Vote */
 | "vote";
/** The status of the abuse report */
type ReceiptFeeTypes = 
/** Other Fee */
"other_fee"
/** Processing Fee */
 | "processing_fee"
/** Whop Fee */
 | "whop_fee";
/** The payment processor of a receipt */
type ReceiptPaymentProcessor = 
/** Apple */
"apple"
/** Coinbase */
 | "coinbase"
/** Crypto */
 | "crypto"
/** Free */
 | "free"
/** Multi Psp */
 | "multi_psp"
/** Nft */
 | "nft"
/** Paypal */
 | "paypal"
/** Platform Balance */
 | "platform_balance"
/** Sezzle */
 | "sezzle"
/** Splitit */
 | "splitit"
/** Stripe */
 | "stripe";
/** The status of a receipt */
type ReceiptStatus = 
/** Draft */
"draft"
/** Open */
 | "open"
/** Paid */
 | "paid"
/** Pending */
 | "pending"
/** Uncollectible */
 | "uncollectible"
/** Unresolved */
 | "unresolved"
/** Void */
 | "void";
/** The status of a receipt */
type ReceiptStatusV2 = "failed" | "partially_refunded" | "past_due" | "refunded" | "succeeded";
/**
 * The type of tax inclusivity applied to the receipt, for determining whether the
 * tax is included in the final price, or paid on top.
 */
type ReceiptTaxBehaviors = 
/** Exclusive */
"exclusive"
/** Inclusive */
 | "inclusive"
/** Unspecified */
 | "unspecified";
/** Values to filter receipts on */
interface ReceiptV2Filters {
    /** A specific access pass. */
    accessPassIds?: InputMaybe<Array<Scalars["ID"]["input"]>>;
    /** The billing reason for the payment */
    billingReasons?: InputMaybe<Array<BillingReasons>>;
    /** The currency of the payment. */
    currencies?: InputMaybe<Array<Currencies>>;
    /** Which way to order the results. */
    direction?: InputMaybe<Direction>;
    /** To get all memberships created before this certain time. */
    endDate?: InputMaybe<Scalars["Timestamp"]["input"]>;
    /** How to order the results. */
    order?: InputMaybe<ReceiptV2Order>;
    /** How the payment was made (method). */
    paymentMethods?: InputMaybe<Array<PaymentMethods>>;
    /** A specific plan. */
    planIds?: InputMaybe<Array<Scalars["ID"]["input"]>>;
    /** The text that is being searched. */
    query?: InputMaybe<Scalars["String"]["input"]>;
    /** To get all memberships created after this certain time. */
    startDate?: InputMaybe<Scalars["Timestamp"]["input"]>;
    /** The state of the payment. */
    statuses?: InputMaybe<Array<ReceiptStatusV2>>;
}
/** The order to sort the results by. */
type ReceiptV2Order = "created_at" | "final_amount" | "paid_at";
/** Which columns can be used to sort. */
type ReceiptsSortableColumns = "created_at" | "final_amount" | "id" | "paid_at" | "presented_final_amount";
/** The different statuses for a Refund object */
type RefundStatuses = "canceled" | "failed" | "pending" | "requires_action" | "succeeded";
/** The methods of how a plan can be released (including raffles and waitlists). */
type ReleaseMethod = 
/** Buy Now */
"buy_now"
/** Raffle */
 | "raffle"
/** Waitlist */
 | "waitlist";
/** The types of reports that can be generated. */
type ReportTypes = 
/** Bookmark */
"bookmark"
/** Downvote */
 | "downvote"
/** Share */
 | "share"
/** Upvote */
 | "upvote";
/** The different types of actions for a resolution event */
type ResolutionActions = 
/** Accepted */
"accepted"
/** Appealed */
 | "appealed"
/** Created */
 | "created"
/** Denied */
 | "denied"
/** Dispute Customer Won */
 | "dispute_customer_won"
/** Dispute Merchant Won */
 | "dispute_merchant_won"
/** Dispute Opened */
 | "dispute_opened"
/** Escalated */
 | "escalated"
/** Requested More Info */
 | "requested_more_info"
/** Responded */
 | "responded"
/** Withdrew */
 | "withdrew";
/** The types of responses a customer can make to a resolution. */
type ResolutionCustomerResponses = "appeal" | "respond" | "withdraw";
/** Filters for the resolutions */
interface ResolutionFilters {
    /** A specific access pass. */
    accessPassIds?: InputMaybe<Array<Scalars["ID"]["input"]>>;
    /** Filter by their case state */
    caseState?: InputMaybe<CaseStates>;
    /** The direction to filter */
    direction?: InputMaybe<Direction>;
    /** Filter by the end date */
    endDate?: InputMaybe<Scalars["Timestamp"]["input"]>;
    /** The order to filter */
    order?: InputMaybe<ResolutionOrder>;
    /** How the payment was made (method). */
    paymentMethods?: InputMaybe<Array<PaymentMethods>>;
    /** The text to search by */
    query?: InputMaybe<Scalars["String"]["input"]>;
    /** Filter by the start date */
    startDate?: InputMaybe<Scalars["Timestamp"]["input"]>;
    /** Filter by their status */
    statuses?: InputMaybe<Array<ResolutionStatuses>>;
}
/** A reason why a specific receipt cannot have a resolution created. */
type ResolutionIneligibilityReason = "already_opened" | "already_refunded" | "free" | "not_paid" | "out_of_date" | "unsupported_payment_processor";
/** The different types of issues a resolution can be */
type ResolutionIssueTypes = 
/** Forgot To Cancel */
"forgot_to_cancel"
/** Item Not Received */
 | "item_not_received"
/** Product Unacceptable */
 | "product_unacceptable"
/** Significantly Not As Described */
 | "significantly_not_as_described"
/** Unauthorized Transaction */
 | "unauthorized_transaction";
/** The types of responses a merchant can make to a resolution. */
type ResolutionMerchantResponses = "accept" | "appeal" | "deny" | "request_more_info" | "respond";
/** Possible values to filter user on */
type ResolutionOrder = "due_date" | "id";
/** The types of responses the platform can make to a resolution. */
type ResolutionPlatformResponses = "merchant_refund" | "merchant_wins" | "platform_refund" | "request_buyer_info" | "request_merchant_info";
/** The different types of reporters for a resolution event */
type ResolutionReporters = 
/** Customer */
"customer"
/** Merchant */
 | "merchant"
/** Platform */
 | "platform"
/** System */
 | "system";
/** The statuses a resolution object can have */
type ResolutionStatuses = 
/** Customer Info Needed */
"customer_info_needed"
/** Customer Response Needed */
 | "customer_response_needed"
/** Customer Withdrew */
 | "customer_withdrew"
/** Customer Won */
 | "customer_won"
/** Merchant Info Needed */
 | "merchant_info_needed"
/** Merchant Response Needed */
 | "merchant_response_needed"
/** Merchant Won */
 | "merchant_won"
/** Under Platform Review */
 | "under_platform_review";
/** Which columns can be used to sort. */
type ResolutionsSortableColumns = "created_at" | "due_date" | "id";
/** The different reason codes. */
type RestrictionSetReasonCodes = "blocked_country";
/** Autogenerated input type of RetryPaymentMyMembership */
interface RetryPaymentMyMembershipInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the company that this membership is on behalf of. */
    companyBuyerId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The ID of the membership to retry the payment for. */
    membershipId: Scalars["ID"]["input"];
}
/** Filters for the reviews search */
interface ReviewFilters {
    /** The direction to filter the reviews */
    direction?: InputMaybe<Direction>;
    /** The order to filter the reviews */
    order?: InputMaybe<ReviewOrder>;
    /** The text to search by */
    query?: InputMaybe<Scalars["String"]["input"]>;
    /** Filter reviews by star count */
    stars?: InputMaybe<Scalars["Int"]["input"]>;
    /** Filter reviews by the person who created the review */
    userId?: InputMaybe<Scalars["ID"]["input"]>;
}
/** Possible values to filter reviews on */
type ReviewOrder = "created_at" | "stars";
/** The status of a review report */
type ReviewReportStatus = 
/** Accepted */
"accepted"
/** Pending */
 | "pending"
/** Rejected */
 | "rejected";
/** The statuses a review can have */
type ReviewStatus = 
/** Pending */
"pending"
/** Published */
 | "published"
/** Removed */
 | "removed";
/** Which columns can be used to sort. */
type ReviewsSortableColumns = "created_at" | "id" | "stars";
/** The available reward units to choose from. */
type RewardUnits = 
/** Per Submission */
"per_submission"
/** Per View */
 | "per_view";
/** The status of an RFI */
type RfiStatuses = 
/** Ignored */
"ignored"
/** Pending Provider */
 | "pending_provider"
/** Resolved */
 | "resolved"
/** Waiting For Platform */
 | "waiting_for_platform"
/** Waiting For User */
 | "waiting_for_user";
/** The level of security an account has */
type SecurityLevels = "none" | "two_factor";
/** Autogenerated input type of SendMessage */
interface SendMessageInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the chat experience to send the message in. */
    experienceId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The ID of the feed to send to. */
    feedId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The type of the feed to send to. */
    feedType?: InputMaybe<FeedTypes>;
    /** The message to send. */
    message: Scalars["String"]["input"];
    /** The user to send the direct message to. */
    toUserId?: InputMaybe<Scalars["ID"]["input"]>;
}
/** Autogenerated input type of SendNotification */
interface SendNotificationInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the company team to send the notification to */
    companyTeamId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The content of the notification */
    content: Scalars["String"]["input"];
    /** The ID of the experience to send the notification to */
    experienceId?: InputMaybe<Scalars["ID"]["input"]>;
    /** An external ID for the notification */
    externalId?: InputMaybe<Scalars["String"]["input"]>;
    /** Whether the notification is a mention */
    isMention?: InputMaybe<Scalars["Boolean"]["input"]>;
    /**
     * The link to open when the notification is clicked. If you just want to append
     * a rest path use the restPath parameter. You can link to any url here.
     */
    link?: InputMaybe<Scalars["String"]["input"]>;
    /**
     * The rest path to append to the generated deep link that opens your app. Use
     * [restPath] in your app path in the dashboard to read this parameter.
     */
    restPath?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the user sending the notification */
    senderUserId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The subtitle of the notification */
    subtitle?: InputMaybe<Scalars["String"]["input"]>;
    /** The title of the notification */
    title: Scalars["String"]["input"];
    /** The IDs of the users to send the notification to. */
    userIds?: InputMaybe<Array<Scalars["ID"]["input"]>>;
}
/** The status of a simple notification preference */
type SimpleNotificationPreferenceStatus = 
/** Everything */
"everything"
/** Nothing */
 | "nothing"
/** Only Mentions */
 | "only_mentions";
/** The different websites you can have social links for */
type SocialLinkWebsites = "facebook" | "instagram" | "linkedin" | "tiktok" | "twitch" | "website" | "x" | "youtube";
/** The configuration for receipts stats query. */
interface StatsConfigInput {
    /** The access pass ids to filter the data by. */
    accessPassIds?: InputMaybe<Array<Scalars["ID"]["input"]>>;
    /** The bot ids to filter the data by. */
    botIds?: InputMaybe<Array<Scalars["ID"]["input"]>>;
    /** The currency to use for the chart. */
    currency?: InputMaybe<Currencies>;
    /** Whether or not to filter data by direct to consumer or marketplace */
    directToConsumer?: InputMaybe<Scalars["Boolean"]["input"]>;
    /** The feed ids to filter the data by. */
    feedIds?: InputMaybe<Array<Scalars["ID"]["input"]>>;
    /** The start date to take into account. */
    from: Scalars["Timestamp"]["input"];
    /** The interval to group the data by. */
    interval?: InputMaybe<ChartIntervals>;
    /** The plan ids to filter the data by. */
    planIds?: InputMaybe<Array<Scalars["ID"]["input"]>>;
    /** The time zone used for start of day calculations. */
    timeZone?: InputMaybe<Scalars["String"]["input"]>;
    /** The end date to take into account. */
    to: Scalars["Timestamp"]["input"];
    /** The week mode to group the data by. For details, look at https://clickhouse.com/docs/en/sql-reference/functions/date-time-functions#toweek */
    weekMode?: InputMaybe<Scalars["Int"]["input"]>;
}
/** Statuses for resources */
type Status = "active" | "archived" | "deleted";
/** The available bounty statuses to choose from. */
type Statuses = 
/** Archived */
"archived"
/** Published */
 | "published";
/** Statuses for stripe accounts */
type StripeAccountStatuses = "connected" | "disabled_by_whop" | "needs_completion" | "needs_reauthorization" | "reconnect_api_keys" | "rejected" | "requirements_not_met" | "under_review";
/** Types of Stripe accounts */
type StripeAccountTypes = "connect" | "custom" | "express" | "personal" | "standard";
/** The different types of businesses a connected account can be */
type StripeBusinessTypes = 
/** Company */
"company"
/** Corporation */
 | "corporation"
/** Government Entity */
 | "government_entity"
/** Individual */
 | "individual"
/** Llc */
 | "llc"
/** Non Profit */
 | "non_profit"
/** Partnership */
 | "partnership"
/** Sole Prop */
 | "sole_prop";
/** The status that an external payout account can have */
type StripeExternalAccountStatuses = 
/** Errored */
"errored"
/** New */
 | "new"
/** Validated */
 | "validated"
/** Verification Failed */
 | "verification_failed"
/** Verified */
 | "verified";
/** The methods that a StripePayout can have */
type StripePayoutMethods = 
/** Instant */
"instant"
/** Standard */
 | "standard";
/** The payout types that a StripePayout can have */
type StripePayoutPayoutTypes = 
/** Bank Account */
"bank_account"
/** Card */
 | "card";
/** The status that a StripePayout can have */
type StripePayoutStatuses = 
/** Canceled */
"canceled"
/** Failed */
 | "failed"
/** In Transit */
 | "in_transit"
/** Paid */
 | "paid"
/** Pending */
 | "pending";
/** The status that a StripePayout's trace can have */
type StripePayoutTraceStatuses = 
/** Pending */
"pending"
/** Supported */
 | "supported"
/** Unsupported */
 | "unsupported";
/** Whether or not the tax is included in a plan's price (or if it hasn't been set up) */
type TaxTypes = 
/** Tax is exclusive in the price of the plan. If its $20 before tax, its $25 after tax. The user is paying tax */
"exclusive"
/** Tax is inclusive in the price of the plan. If its $20, its $20. The company already factored in tax and is paying tax */
 | "inclusive"
/** The company hasn't set up tax yet */
 | "unspecified";
/** Autogenerated input type of TerminateMyMembership */
interface TerminateMyMembershipInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the company that this membership is on behalf of. */
    companyBuyerId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The internal ID of the membership to terminate. */
    id: Scalars["ID"]["input"];
}
/** Autogenerated input type of ToggleCancelMyMembership */
interface ToggleCancelMyMembershipInput {
    /** A multiple choice selection for why the user canceled. */
    cancelOption?: InputMaybe<CancelOptions>;
    /** The custom input from the user for canceling the membership. */
    cancelationReason?: InputMaybe<Scalars["String"]["input"]>;
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the company that this membership is on behalf of. */
    companyBuyerId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The ID of the membership to cancel at the end of the period. */
    membershipId: Scalars["ID"]["input"];
}
/**
 * Whether this flow is for the company or the user. This is how we determine which
 * notification topics to create upon user creation.
 */
type Topic = 
/** Company */
"company"
/** Company Team */
 | "company_team"
/** User */
 | "user";
/** The destination of the custom link */
type TrackingLinkDestination = 
/** Access Pass Page */
"access_pass_page"
/** Bot Page */
 | "bot_page"
/** Checkout Page */
 | "checkout_page";
/** Which columns can be used to sort. */
type TrackingLinksSortableColumns = "clicks" | "conversion_rate" | "converted_users" | "created_at" | "id" | "revenue_generated";
/** The different types for a tracking pixel */
type TrackingPixelTypes = 
/** Hubspot Pixel */
"hubspot_pixel_id"
/** X Checkout Initiated Event */
 | "x_checkout_initiated_event"
/** X Payment Method Event */
 | "x_payment_method_event"
/** X Purchase Event */
 | "x_purchase_event";
/** Autogenerated input type of TransferFunds */
interface TransferFundsInput {
    /** The amount to withdraw */
    amount: Scalars["Float"]["input"];
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The currency that is being withdrawn. */
    currency: Currencies;
    /** The ID of the destination (either a User tag, Bot tag, or LedgerAccount tag) */
    destinationId: Scalars["ID"]["input"];
    /** The feed identifier to notify of the transfer. */
    feedId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The feed type to notify of the transfer. */
    feedType?: InputMaybe<FeedTypes>;
    /** A unique key to ensure idempotence. Use a UUID or similar. */
    idempotenceKey: Scalars["String"]["input"];
    /** The ledger account id to transfer from. */
    ledgerAccountId: Scalars["ID"]["input"];
    /** Notes for the transfer. Maximum of 50 characters. */
    notes?: InputMaybe<Scalars["String"]["input"]>;
    /** The reason for the transfer. */
    reason?: InputMaybe<CreditTransactionTransferReasons>;
    /** The fee that the client thinks it is being charged for the transfer. Used to verify the fee. */
    transferFee?: InputMaybe<Scalars["Float"]["input"]>;
}
/** Autogenerated input type of TransferLinkMyMembership */
interface TransferLinkMyMembershipInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the company that this membership is on behalf of. */
    companyBuyerId?: InputMaybe<Scalars["ID"]["input"]>;
    /** This is the ID of the membership you want to create a transfer link for. */
    id: Scalars["ID"]["input"];
}
/** Autogenerated input type of UnbanUser */
interface UnbanUserInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the user to unban */
    userId: Scalars["ID"]["input"];
}
/** The types of universal post feeds that you can retrieve */
type UniversalPostFeedTypes = "access_pass" | "discover" | "home" | "recent_content_reward_submissions" | "user_profile";
/** Autogenerated input type of UpdateChapter */
interface UpdateChapterInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the chapter to update */
    id: Scalars["ID"]["input"];
    /** The title of the chapter */
    title: Scalars["String"]["input"];
}
/** Autogenerated input type of UpdateChapterOrder */
interface UpdateChapterOrderInput {
    /** The ID of the chapter to place this chapter below */
    belowChapterId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The ID of the chapter to reorder */
    chapterId: Scalars["ID"]["input"];
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
}
/** Autogenerated input type of UpdateLesson */
interface UpdateLessonInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The content of the lesson */
    content?: InputMaybe<Scalars["String"]["input"]>;
    /** Days from course start until unlock */
    daysFromCourseStartUntilUnlock?: InputMaybe<Scalars["Int"]["input"]>;
    /** The ID of the lesson to update */
    id: Scalars["ID"]["input"];
    /** The type of the lesson */
    lessonType?: InputMaybe<LessonTypes>;
    /** The ID of the Mux asset to attach to this lesson */
    muxAssetId?: InputMaybe<Scalars["String"]["input"]>;
    /** The title of the lesson */
    title?: InputMaybe<Scalars["String"]["input"]>;
    /** Determines how / whether this lesson is visible to users. */
    visibility?: InputMaybe<LessonVisibilities>;
}
/** Autogenerated input type of UpdateLessonOrder */
interface UpdateLessonOrderInput {
    /** The ID of the lesson to place this lesson below */
    belowLessonId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The ID of the chapter to move the lesson to */
    chapterId: Scalars["ID"]["input"];
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The ID of the lesson to reorder */
    lessonId: Scalars["ID"]["input"];
}
/** Autogenerated input type of UpdateMembership */
interface UpdateMembershipInput {
    /** A unique identifier for the client performing the mutation. */
    clientMutationId?: InputMaybe<Scalars["String"]["input"]>;
    /** The number of trial days to add to the membership to extend it. */
    freeDays?: InputMaybe<Scalars["Int"]["input"]>;
    /** The ID (tag) of the membership. */
    id: Scalars["ID"]["input"];
    /** The action being applied to the specific membership. */
    membershipAction: MembershipActions;
}
interface UploadPartInput {
    /** The ETag of the part */
    etag: Scalars["String"]["input"];
    /** The part number of the part */
    partNumber: Scalars["Int"]["input"];
}
interface UpsellPlanInput {
    /** The base currency of the upsell. */
    baseCurrency?: InputMaybe<Currencies>;
    /** An array of custom field objects. */
    customFields?: InputMaybe<Array<CustomFieldInput>>;
    /** The interval at which the plan charges (expiration plans). */
    expirationDays?: InputMaybe<Scalars["Int"]["input"]>;
    /** The price of the upsell. */
    initialPrice?: InputMaybe<Scalars["Float"]["input"]>;
    /** The method of release for the upsell. */
    releaseMethod?: InputMaybe<ReleaseMethod>;
}
/** The different types of upsells an experience can have. */
type UpsellTypes = 
/** After Checkout */
"after_checkout"
/** Before Checkout */
 | "before_checkout"
/** Only In Whop */
 | "only_in_whop";
/** Filters for the user affiliate referral logs search */
interface UserAffiliateReferralLogFilters {
    /** Which direction the order should be in. */
    direction?: InputMaybe<Direction>;
    /** How you want to order the results. */
    order?: InputMaybe<UserAffiliateReferralLogOrder>;
    /** What to search by: whop username, access pass name, or bot title */
    query?: InputMaybe<Scalars["String"]["input"]>;
}
/** The order to sort the logs by */
type UserAffiliateReferralLogOrder = "id";
/** The configuration for a chart. */
interface UserChartConfigInput {
    /** The currency to use for the chart. */
    currency?: InputMaybe<Currencies>;
    /** The start date to take into account. */
    from: Scalars["Timestamp"]["input"];
    /** The interval to group the data by. */
    interval?: InputMaybe<ChartIntervals>;
    /** The time zone used for start of day calculations. */
    timeZone?: InputMaybe<Scalars["String"]["input"]>;
    /** The end date to take into account. */
    to: Scalars["Timestamp"]["input"];
    /** The week mode to group the data by. For details, look at https://clickhouse.com/docs/en/sql-reference/functions/date-time-functions#toweek */
    weekMode?: InputMaybe<Scalars["Int"]["input"]>;
}
/** Values to filter content rewards submissions on */
interface UserContentRewardsSubmissionsFilters {
    /** The campaign ID to filter by */
    campaignId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The direction to order by */
    direction?: InputMaybe<Direction>;
    /** The experience ID to filter by */
    experienceId?: InputMaybe<Scalars["ID"]["input"]>;
    /** The order to sort the results by */
    order?: InputMaybe<UserContentRewardsSubmissionsOrder>;
    /** The status of the submissions */
    status?: InputMaybe<ContentRewardsSubmissionStatus>;
}
/** The ordering options for content rewards submissions */
type UserContentRewardsSubmissionsOrder = "amount_paid_out" | "created_at" | "expires_at" | "total_view_count";
/** The channel of the user notification preference */
type UserNotificationPreferenceChannel = 
/** In App */
"in_app"
/** Mobile */
 | "mobile";
/** The steps a user can follow to complete onboarding */
type UserOnboardingStepsTypes = "add_birthday" | "add_email" | "add_name" | "add_phone" | "add_profile_picture" | "add_username" | "download_mobile_app" | "join_a_whop" | "select_interests" | "verify_email" | "verify_phone";
/** Values to filter user receipts on */
interface UserReceiptFilters {
    /** How to order the results. */
    direction?: InputMaybe<Direction>;
    /** What to order the results by. */
    order?: InputMaybe<UserReceiptOrder>;
    /** The text that is being searched. */
    query?: InputMaybe<Scalars["String"]["input"]>;
}
/** The order to sort the results by. */
type UserReceiptOrder = "paid_at";
/** The different websites you can have social links for */
type UserSocialLinkWebsites = "facebook" | "instagram" | "linkedin" | "tiktok" | "twitch" | "website" | "x" | "youtube";
/** The type of a user */
type UserTypes = 
/** Agent */
"agent"
/** Human */
 | "human"
/** System */
 | "system";
/** The order to sort the results by. */
type ValidMembershipsOrder = "expires_at" | "id" | "ordering_status";
/** A vaulting method for a payment token. */
type VaultMethods = 
/** Paypal Wallet */
"paypal_wallet"
/** Venmo Wallet */
 | "venmo_wallet";
/** The different providers a vault token can be. */
type VaultTokenProviders = 
/** Basis Theory */
"basis_theory";
/** An error code for a verification attempt. */
type VerificationErrorCodes = 
/** Abandoned */
"abandoned"
/** Consent Declined */
 | "consent_declined"
/** Country Not Supported */
 | "country_not_supported"
/** Device Not Supported */
 | "device_not_supported"
/** Document Expired */
 | "document_expired"
/** Document Type Not Supported */
 | "document_type_not_supported"
/** Document Unverified Other */
 | "document_unverified_other"
/** Email Unverified Other */
 | "email_unverified_other"
/** Email Verification Declined */
 | "email_verification_declined"
/** Id Number Insufficient Document Data */
 | "id_number_insufficient_document_data"
/** Id Number Mismatch */
 | "id_number_mismatch"
/** Id Number Unverified Other */
 | "id_number_unverified_other"
/** Phone Unverified Other */
 | "phone_unverified_other"
/** Phone Verification Declined */
 | "phone_verification_declined"
/** Selfie Document Missing Photo */
 | "selfie_document_missing_photo"
/** Selfie Face Mismatch */
 | "selfie_face_mismatch"
/** Selfie Manipulated */
 | "selfie_manipulated"
/** Selfie Unverified Other */
 | "selfie_unverified_other"
/** Under Supported Age */
 | "under_supported_age";
/** The different providers a payout account can be. */
type VerificationProviders = 
/** Stripe */
"stripe"
/** Veriff */
 | "veriff";
/** A status for a verification. */
type VerificationStatuses = 
/** Abandoned */
"abandoned"
/** Approved */
 | "approved"
/** Canceled */
 | "canceled"
/** Created */
 | "created"
/** Declined */
 | "declined"
/** Expired */
 | "expired"
/** Processing */
 | "processing"
/** Requires Input */
 | "requires_input"
/** Resubmission Requested */
 | "resubmission_requested"
/** Review */
 | "review"
/** Started */
 | "started"
/** Submitted */
 | "submitted"
/** Verified */
 | "verified";
/** The status of a bots Whop Verified. */
type VerifiedStatuses = "accepted" | "applied" | "rejected";
/** The types of version events that are possible. */
type VersionEventTypes = "create" | "destroy" | "update";
/** Filters for the version search */
interface VersionFilters {
    /** The direction to filter the audit logs */
    direction?: InputMaybe<Direction>;
    /** To get all Audit Logs created before this certain time. */
    endDate?: InputMaybe<Scalars["Timestamp"]["input"]>;
    /** The event type to filter by. */
    eventType?: InputMaybe<Array<VersionEventTypes>>;
    /** The object type to filter by. */
    objectType?: InputMaybe<Array<VersionObjects>>;
    /** What to order the results by. */
    order?: InputMaybe<VersionOrder>;
    /** The text that is being searched. Searches the version's identifier, which is usually a name or ID related to the object. */
    query?: InputMaybe<Scalars["String"]["input"]>;
    /** To get all Audit Logs created after this certain time. */
    startDate?: InputMaybe<Scalars["Timestamp"]["input"]>;
    /** The ID of the user who triggered this audit log */
    userId?: InputMaybe<Array<Scalars["String"]["input"]>>;
}
/** The types of objects that have versions available for them. */
type VersionObjects = "access_pass" | "affiliate" | "authorized_user" | "bot" | "discord_server" | "experience" | "plan" | "promo_code" | "stripe_account";
/** The order to sort the memberships by */
type VersionOrder = "event" | "id";
/** Visibility of a resource */
type Visibility = 
/** Archived */
"archived"
/** Hidden */
 | "hidden"
/** Quick Link */
 | "quick_link"
/** Visible */
 | "visible";
/** The different levels of visibility for resources */
type VisibilityFilter = "all"
/** Archived */
 | "archived"
/** Hidden */
 | "hidden" | "not_archived" | "not_quick_link"
/** Quick Link */
 | "quick_link"
/** Visible */
 | "visible";
/** The different event types available */
type WebhookEvent = "app_membership_cancel_at_period_end_changed" | "app_membership_went_invalid" | "app_membership_went_valid" | "app_payment_failed" | "app_payment_pending" | "app_payment_succeeded" | "dispute_alert_created" | "dispute_created" | "dispute_updated" | "membership_cancel_at_period_end_changed" | "membership_experience_claimed" | "membership_metadata_updated" | "membership_went_invalid" | "membership_went_valid" | "payment_affiliate_reward_created" | "payment_failed" | "payment_pending" | "payment_succeeded" | "refund_created" | "refund_updated" | "resolution_created" | "resolution_decided" | "resolution_updated";
/** The anchor for when the Connected Account will be paid out */
type WeeklyAnchors = "friday" | "monday" | "saturday" | "sunday" | "thursday" | "tuesday" | "wednesday";
/** Who can post on a chat feed */
type WhoCanPostTypes = "admins" | "everyone";
/** Who can react on a chat feed */
type WhoCanReactTypes = "everyone" | "no_one";
/** Values to filter users on */
interface WhopSidebarFilters {
    /** How to order the results. */
    direction?: InputMaybe<Direction>;
    /** What to order the results by. */
    order?: InputMaybe<WhopSidebarOrderEnum>;
    /** The text that is being searched. */
    query?: InputMaybe<Scalars["String"]["input"]>;
}
/** The order to sort the results by. */
type WhopSidebarOrderEnum = "date_joined" | "last_seen_at" | "name" | "paid_out_by_company" | "time_spent_in_whop";
/** Values to filter users on */
interface WhopSidebarWithEarningsFilters {
    /** How to order the results. */
    direction?: InputMaybe<Direction>;
    /** What to order the results by. */
    order?: InputMaybe<WhopSidebarWithEarningsOrderEnum>;
    /** The text that is being searched. */
    query?: InputMaybe<Scalars["String"]["input"]>;
}
/** The order to sort the results by. */
type WhopSidebarWithEarningsOrderEnum = "last_7_days" | "last_24_hours" | "last_30_days" | "lifetime";
/** The different fee types for a withdrawal. */
type WithdrawalFeeTypes = "exclusive" | "inclusive";
/** Values to filter the withdrawals on. */
interface WithdrawalFilters {
    /** Filter by currency */
    currency?: InputMaybe<Currencies>;
    /** The withdrawal status/state */
    statuses?: InputMaybe<Array<WithdrawalStatus>>;
}
/** The method used for withdrawing. */
type WithdrawalMethods = 
/** Ach */
"ach"
/** Btc */
 | "btc"
/** Cash App */
 | "cash_app"
/** Check */
 | "check"
/** Echeck */
 | "echeck"
/** Manual */
 | "manual"
/** Masspay */
 | "masspay"
/** Paypal */
 | "paypal"
/** Stripe */
 | "stripe"
/** Venmo */
 | "venmo"
/** Wire Transfer */
 | "wire_transfer"
/** Zelle */
 | "zelle";
/** The statuses a review can have */
type WithdrawalProviders = 
/** Manual */
"manual"
/** Masspay */
 | "masspay"
/** Stripe */
 | "stripe"
/** Tipalti */
 | "tipalti";
/** The different speeds of withdrawals */
type WithdrawalSpeeds = 
/** Instant */
"instant"
/** Standard */
 | "standard";
/** The status of a withdrawal request */
type WithdrawalStatus = 
/** Awaiting Payment */
"awaiting_payment"
/** Canceled */
 | "canceled"
/** Completed */
 | "completed"
/** Denied */
 | "denied"
/** Failed */
 | "failed"
/** In Transit */
 | "in_transit"
/** Requested */
 | "requested";
/** The types of withdrawals */
type WithdrawalTypes = 
/** Clawback */
"clawback"
/** Regular */
 | "regular";
/** Which columns can be used to sort. */
type WithdrawalsSortableColumns = "amount" | "created_at" | "id";
type AccessPassFragmentFragment = {
    __typename?: "PublicAccessPass";
    id: string;
    title: string;
    shortenedDescription?: string | null;
    verified: boolean;
    visibility: Visibility;
    route: string;
    activeUsersCount: number;
    logo?: {
        __typename?: "AudioAttachment";
        sourceUrl?: string | null;
    } | {
        __typename?: "ImageAttachment";
        sourceUrl?: string | null;
    } | {
        __typename?: "OtherAttachment";
        sourceUrl?: string | null;
    } | {
        __typename?: "VideoAttachment";
        sourceUrl?: string | null;
    } | null;
};
type BaseAppBuildFragment = {
    __typename?: "AppBuild";
    id: string;
    createdAt: number;
    fileUrl: string;
    checksum: string;
    platform: AppBuildPlatforms;
    reviewMessage?: string | null;
    supportedAppViewTypes: Array<AppViewTypes>;
    status: AppBuildStatuses;
};
type Attachment_AudioAttachment_Fragment = {
    __typename: "AudioAttachment";
    duration?: number | null;
    waveformUrl?: string | null;
    id: string;
    signedId?: string | null;
    analyzed: boolean;
    byteSizeV2?: string | null;
    filename?: string | null;
    contentType?: string | null;
    source: {
        __typename?: "AttachmentSource";
        url: string;
    };
};
type Attachment_ImageAttachment_Fragment = {
    __typename: "ImageAttachment";
    height?: number | null;
    width?: number | null;
    blurhash?: string | null;
    aspectRatio?: number | null;
    id: string;
    signedId?: string | null;
    analyzed: boolean;
    byteSizeV2?: string | null;
    filename?: string | null;
    contentType?: string | null;
    source: {
        __typename?: "AttachmentSource";
        url: string;
    };
};
type Attachment_OtherAttachment_Fragment = {
    __typename: "OtherAttachment";
    id: string;
    signedId?: string | null;
    analyzed: boolean;
    byteSizeV2?: string | null;
    filename?: string | null;
    contentType?: string | null;
    source: {
        __typename?: "AttachmentSource";
        url: string;
    };
};
type Attachment_VideoAttachment_Fragment = {
    __typename: "VideoAttachment";
    height?: number | null;
    width?: number | null;
    duration?: number | null;
    aspectRatio?: number | null;
    id: string;
    signedId?: string | null;
    analyzed: boolean;
    byteSizeV2?: string | null;
    filename?: string | null;
    contentType?: string | null;
    preview: {
        __typename?: "AttachmentSource";
        url: string;
    };
    source: {
        __typename?: "AttachmentSource";
        url: string;
    };
};
type AttachmentFragment = Attachment_AudioAttachment_Fragment | Attachment_ImageAttachment_Fragment | Attachment_OtherAttachment_Fragment | Attachment_VideoAttachment_Fragment;
type BaseLedgerAccountFragment = {
    __typename?: "LedgerAccount";
    id: string;
    transferFee?: number | null;
    balanceCaches: {
        __typename?: "BalanceCacheConnection";
        nodes?: Array<{
            __typename?: "BalanceCache";
            balance: number;
            pendingBalance: number;
            currency: Currencies;
        } | null> | null;
    };
};
type BasePublicPlanFragment = {
    __typename?: "PublicPlan";
    id: string;
    baseCurrency: Currencies;
    rawRenewalPrice: number;
    rawInitialPrice: number;
    initialPriceDue: number;
    createdAt: number;
    updatedAt: number;
    billingPeriod?: number | null;
    trialPeriodDays?: number | null;
    expirationDays?: number | null;
    unlimitedStock: boolean;
    paymentLinkDescription?: string | null;
    releaseMethod: ReleaseMethod;
    stock?: number | null;
    visibility: Visibility;
    planType: PlanTypes;
};
type BasePlanFragment = {
    __typename?: "Plan";
    id: string;
    baseCurrency: Currencies;
    rawRenewalPrice: number;
    rawInitialPrice: number;
    initialPriceDue: number;
    createdAt: number;
    updatedAt: number;
    billingPeriod?: number | null;
    trialPeriodDays?: number | null;
    expirationDays?: number | null;
    unlimitedStock: boolean;
    paymentLinkDescription?: string | null;
    releaseMethod: ReleaseMethod;
    stock: number;
    visibility: Visibility;
    planType: PlanTypes;
};
type BaseReceiptFragment = {
    __typename?: "Receipt";
    id: string;
    settledUsdAmount?: number | null;
    billingReason?: string | null;
    last4?: string | null;
    currency?: Currencies | null;
    status?: ReceiptStatus | null;
    createdAt: number;
    total?: number | null;
    brand?: string | null;
    paymentProcessor?: ReceiptPaymentProcessor | null;
    paymentMethodType?: string | null;
    disputeAlertedAt?: number | null;
    finalAmount: number;
    presentedFinalAmount?: number | null;
    presentedSettledUsdAmount?: number | null;
    refundedAmount?: number | null;
    friendlyStatus: FriendlyReceiptStatus;
    failureMessage?: string | null;
    refundable: boolean;
    retryable: boolean;
    paidAt?: number | null;
    amountAfterFees: number;
    chargeSkippedPriceTooLow: boolean;
    lastPaymentAttempt?: number | null;
    autoRefunded: boolean;
    totalUsdAmount?: number | null;
    mostRecentRiskScore?: number | null;
    address?: {
        __typename?: "Address";
        name?: string | null;
        line1?: string | null;
        line2?: string | null;
        city?: string | null;
        state?: string | null;
        postalCode?: string | null;
        country?: string | null;
    } | null;
    member?: {
        __typename?: "CompanyMember";
        header: string;
        user?: {
            __typename?: "CompanyMemberUser";
            id: string;
            username: string;
            name?: string | null;
            email?: string | null;
            country?: string | null;
            countryName?: string | null;
        } | null;
        imageSrcset: {
            __typename?: "ImgSrcset";
            original: string;
            double: string;
            isVideo: boolean;
        };
    } | null;
    plan?: {
        __typename?: "Plan";
        id: string;
        title: string;
        formattedPrice: string;
        initialPrice: number;
        renewalPrice: number;
        paymentLinkDescription?: string | null;
    } | null;
    membership?: {
        __typename?: "Membership";
        id: string;
        status: MembershipStatus;
    } | null;
    promoCode?: {
        __typename?: "PromoCode";
        id: string;
        code?: string | null;
        amountOff: number;
        baseCurrency: Currencies;
        promoType: PromoTypes;
        numberOfIntervals?: number | null;
    } | null;
    accessPass?: {
        __typename?: "AccessPass";
        id: string;
        title: string;
    } | null;
};
type BaseUserFragment = {
    __typename?: "User";
    id: string;
    email?: string | null;
    name?: string | null;
    username: string;
    profilePicture?: {
        __typename?: "AudioAttachment";
        sourceUrl?: string | null;
    } | {
        __typename?: "ImageAttachment";
        sourceUrl?: string | null;
    } | {
        __typename?: "OtherAttachment";
        sourceUrl?: string | null;
    } | {
        __typename?: "VideoAttachment";
        sourceUrl?: string | null;
    } | null;
};
type BasePublicProfileUserFragment = {
    __typename?: "PublicProfileUser";
    id: string;
    name?: string | null;
    username: string;
    phoneVerified: boolean;
    city?: string | null;
    country?: string | null;
    profilePicture?: {
        __typename?: "AudioAttachment";
        sourceUrl?: string | null;
    } | {
        __typename?: "ImageAttachment";
        sourceUrl?: string | null;
    } | {
        __typename?: "OtherAttachment";
        sourceUrl?: string | null;
    } | {
        __typename?: "VideoAttachment";
        sourceUrl?: string | null;
    } | null;
};
type BasicCourseFragment = {
    __typename?: "Course";
    certificateAfterCompletionEnabled?: boolean | null;
    coverImage?: string | null;
    description?: string | null;
    id: string;
    language: Languages;
    requireCompletingLessonsInOrder: boolean;
    tagline?: string | null;
    title?: string | null;
    videoProtectionEnabled: boolean;
    chapters: Array<{
        __typename?: "Chapter";
        id: string;
        title: string;
        order: number;
        lessons: Array<{
            __typename?: "Lesson";
            id: string;
            lessonType: LessonTypes;
            title: string;
            order: number;
            visibility: LessonVisibilities;
            daysFromCourseStartUntilUnlock?: number | null;
            content?: string | null;
            muxAsset?: {
                __typename?: "MuxAsset";
                id: string;
                muxAssetId?: string | null;
                playbackId?: string | null;
                signedPlaybackId?: string | null;
                signedThumbnailPlaybackToken?: string | null;
                signedVideoPlaybackToken?: string | null;
                signedStoryboardPlaybackToken?: string | null;
                durationSeconds?: number | null;
                status: MuxAssetStatuses;
                finishedUploadingAt?: number | null;
            } | null;
        }>;
    }>;
};
type BasicCourseChapterFragment = {
    __typename?: "Chapter";
    id: string;
    title: string;
    order: number;
    lessons: Array<{
        __typename?: "Lesson";
        id: string;
        lessonType: LessonTypes;
        title: string;
        order: number;
        visibility: LessonVisibilities;
        daysFromCourseStartUntilUnlock?: number | null;
        content?: string | null;
        muxAsset?: {
            __typename?: "MuxAsset";
            id: string;
            muxAssetId?: string | null;
            playbackId?: string | null;
            signedPlaybackId?: string | null;
            signedThumbnailPlaybackToken?: string | null;
            signedVideoPlaybackToken?: string | null;
            signedStoryboardPlaybackToken?: string | null;
            durationSeconds?: number | null;
            status: MuxAssetStatuses;
            finishedUploadingAt?: number | null;
        } | null;
    }>;
};
type BasicCourseLessonFragment = {
    __typename?: "Lesson";
    id: string;
    lessonType: LessonTypes;
    title: string;
    order: number;
    visibility: LessonVisibilities;
    daysFromCourseStartUntilUnlock?: number | null;
    content?: string | null;
    muxAsset?: {
        __typename?: "MuxAsset";
        id: string;
        muxAssetId?: string | null;
        playbackId?: string | null;
        signedPlaybackId?: string | null;
        signedThumbnailPlaybackToken?: string | null;
        signedVideoPlaybackToken?: string | null;
        signedStoryboardPlaybackToken?: string | null;
        durationSeconds?: number | null;
        status: MuxAssetStatuses;
        finishedUploadingAt?: number | null;
    } | null;
};
type ExperienceFragmentFragment = {
    __typename?: "CustomPrivate";
    id: string;
    name?: string | null;
    description?: string | null;
    logo?: {
        __typename?: "ImgSrcset";
        sourceUrl: string;
    } | null;
    app: {
        __typename?: "App";
        id: string;
        name: string;
        icon?: {
            __typename?: "AudioAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "ImageAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "OtherAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "VideoAttachment";
            sourceUrl?: string | null;
        } | null;
    };
};
type PublicExperienceFragmentFragment = {
    __typename?: "PublicExperience";
    id: string;
    name: string;
    description?: string | null;
    logo?: {
        __typename?: "AudioAttachment";
        sourceUrl?: string | null;
    } | {
        __typename?: "ImageAttachment";
        sourceUrl?: string | null;
    } | {
        __typename?: "OtherAttachment";
        sourceUrl?: string | null;
    } | {
        __typename?: "VideoAttachment";
        sourceUrl?: string | null;
    } | null;
    app: {
        __typename?: "PublicApp";
        id: string;
        name: string;
        icon?: {
            __typename?: "AudioAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "ImageAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "OtherAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "VideoAttachment";
            sourceUrl?: string | null;
        } | null;
    };
    company: {
        __typename?: "PublicCompany";
        id: string;
        title: string;
    };
};
type ForumPostFragmentFragment = {
    __typename?: "ForumPost";
    id: string;
    createdAt: string;
    updatedAt: string;
    content?: string | null;
    richContent?: string | null;
    isDeleted: boolean;
    isEdited: boolean;
    mentionedUserIds: Array<string>;
    parentId?: string | null;
    viewCount?: number | null;
    isPinned: boolean;
    attachments: Array<{
        __typename?: "AudioAttachment";
        id: string;
        contentType?: string | null;
        sourceUrl?: string | null;
    } | {
        __typename?: "ImageAttachment";
        id: string;
        contentType?: string | null;
        sourceUrl?: string | null;
    } | {
        __typename?: "OtherAttachment";
        id: string;
        contentType?: string | null;
        sourceUrl?: string | null;
    } | {
        __typename?: "VideoAttachment";
        id: string;
        contentType?: string | null;
        sourceUrl?: string | null;
    }>;
    user: {
        __typename?: "PublicProfileUser";
        id: string;
        name?: string | null;
        username: string;
        phoneVerified: boolean;
        city?: string | null;
        country?: string | null;
        profilePicture?: {
            __typename?: "AudioAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "ImageAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "OtherAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "VideoAttachment";
            sourceUrl?: string | null;
        } | null;
    };
};
type FullCourseLessonFragment = {
    __typename?: "Lesson";
    id: string;
    lessonType: LessonTypes;
    title: string;
    order: number;
    visibility: LessonVisibilities;
    content?: string | null;
    daysFromCourseStartUntilUnlock?: number | null;
    muxAsset?: {
        __typename?: "MuxAsset";
        id: string;
        muxAssetId?: string | null;
        playbackId?: string | null;
        signedPlaybackId?: string | null;
        signedThumbnailPlaybackToken?: string | null;
        signedVideoPlaybackToken?: string | null;
        signedStoryboardPlaybackToken?: string | null;
        durationSeconds?: number | null;
        status: MuxAssetStatuses;
        finishedUploadingAt?: number | null;
    } | null;
    assessmentQuestions: Array<{
        __typename?: "AssessmentQuestion";
        id: string;
        correctAnswer: string;
        order: number;
        questionText: string;
        questionType: CoursesAssessmentQuestionTypes;
        image?: {
            __typename: "AudioAttachment";
            duration?: number | null;
            waveformUrl?: string | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "ImageAttachment";
            height?: number | null;
            width?: number | null;
            blurhash?: string | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "OtherAttachment";
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "VideoAttachment";
            height?: number | null;
            width?: number | null;
            duration?: number | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            preview: {
                __typename?: "AttachmentSource";
                url: string;
            };
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | null;
        options: Array<{
            __typename?: "AssessmentQuestionOption";
            id: string;
            isCorrect: boolean;
            optionText: string;
            order: number;
        }>;
    }>;
    attachments: {
        __typename?: "AttachmentInterfaceConnection";
        nodes?: Array<{
            __typename: "AudioAttachment";
            duration?: number | null;
            waveformUrl?: string | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "ImageAttachment";
            height?: number | null;
            width?: number | null;
            blurhash?: string | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "OtherAttachment";
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "VideoAttachment";
            height?: number | null;
            width?: number | null;
            duration?: number | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            preview: {
                __typename?: "AttachmentSource";
                url: string;
            };
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | null> | null;
    };
    mainPdf?: {
        __typename: "AudioAttachment";
        duration?: number | null;
        waveformUrl?: string | null;
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | {
        __typename: "ImageAttachment";
        height?: number | null;
        width?: number | null;
        blurhash?: string | null;
        aspectRatio?: number | null;
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | {
        __typename: "OtherAttachment";
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | {
        __typename: "VideoAttachment";
        height?: number | null;
        width?: number | null;
        duration?: number | null;
        aspectRatio?: number | null;
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        preview: {
            __typename?: "AttachmentSource";
            url: string;
        };
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | null;
};
type CourseMuxAssetFragment = {
    __typename?: "MuxAsset";
    id: string;
    muxAssetId?: string | null;
    playbackId?: string | null;
    signedPlaybackId?: string | null;
    signedThumbnailPlaybackToken?: string | null;
    signedVideoPlaybackToken?: string | null;
    signedStoryboardPlaybackToken?: string | null;
    durationSeconds?: number | null;
    status: MuxAssetStatuses;
    finishedUploadingAt?: number | null;
};
type CourseAssessmentQuestionFragment = {
    __typename?: "AssessmentQuestion";
    id: string;
    correctAnswer: string;
    order: number;
    questionText: string;
    questionType: CoursesAssessmentQuestionTypes;
    image?: {
        __typename: "AudioAttachment";
        duration?: number | null;
        waveformUrl?: string | null;
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | {
        __typename: "ImageAttachment";
        height?: number | null;
        width?: number | null;
        blurhash?: string | null;
        aspectRatio?: number | null;
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | {
        __typename: "OtherAttachment";
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | {
        __typename: "VideoAttachment";
        height?: number | null;
        width?: number | null;
        duration?: number | null;
        aspectRatio?: number | null;
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        preview: {
            __typename?: "AttachmentSource";
            url: string;
        };
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | null;
    options: Array<{
        __typename?: "AssessmentQuestionOption";
        id: string;
        isCorrect: boolean;
        optionText: string;
        order: number;
    }>;
};
type MessageFragment = {
    __typename?: "DmsPost";
    id: string;
    createdAt: string;
    updatedAt: string;
    content?: string | null;
    richContent?: string | null;
    isDeleted: boolean;
    isEdited: boolean;
    isPinned: boolean;
    isEveryoneMentioned: boolean;
    mentionedUserIds: Array<string>;
    messageType: DmsPostTypes;
    replyingToPostId?: string | null;
    viewCount?: number | null;
    attachments: Array<{
        __typename?: "AudioAttachment";
        id: string;
        contentType?: string | null;
        sourceUrl?: string | null;
    } | {
        __typename?: "ImageAttachment";
        id: string;
        contentType?: string | null;
        sourceUrl?: string | null;
    } | {
        __typename?: "OtherAttachment";
        id: string;
        contentType?: string | null;
        sourceUrl?: string | null;
    } | {
        __typename?: "VideoAttachment";
        id: string;
        contentType?: string | null;
        sourceUrl?: string | null;
    }>;
    user: {
        __typename?: "PublicProfileUser";
        id: string;
        name?: string | null;
        username: string;
        phoneVerified: boolean;
        city?: string | null;
        country?: string | null;
        profilePicture?: {
            __typename?: "AudioAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "ImageAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "OtherAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "VideoAttachment";
            sourceUrl?: string | null;
        } | null;
    };
};
type GetAccessPassQueryVariables = Exact<{
    accessPassId: Scalars["ID"]["input"];
}>;
type GetAccessPassQuery = {
    __typename?: "PublicQuery";
    accessPass: {
        __typename?: "PublicAccessPass";
        headline?: string | null;
        reviewsAverage: number;
        id: string;
        title: string;
        shortenedDescription?: string | null;
        verified: boolean;
        visibility: Visibility;
        route: string;
        activeUsersCount: number;
        bannerImage?: {
            __typename?: "AudioAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "ImageAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "OtherAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "VideoAttachment";
            sourceUrl?: string | null;
        } | null;
        company: {
            __typename?: "PublicCompany";
            id: string;
            title: string;
        };
        ownerUser: {
            __typename?: "PublicProfileUser";
            id: string;
            name?: string | null;
            username: string;
            phoneVerified: boolean;
            city?: string | null;
            country?: string | null;
            profilePicture?: {
                __typename?: "AudioAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "ImageAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "OtherAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "VideoAttachment";
                sourceUrl?: string | null;
            } | null;
        };
        galleryImages: {
            __typename?: "AttachmentInterfaceConnection";
            nodes?: Array<{
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null> | null;
        };
        logo?: {
            __typename?: "AudioAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "ImageAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "OtherAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "VideoAttachment";
            sourceUrl?: string | null;
        } | null;
    };
};
type CheckIfUserHasAccessToAccessPassQueryVariables = Exact<{
    accessPassId: Scalars["ID"]["input"];
    userId?: InputMaybe<Scalars["ID"]["input"]>;
}>;
type CheckIfUserHasAccessToAccessPassQuery = {
    __typename?: "PublicQuery";
    hasAccessToAccessPass: {
        __typename?: "HasAccessResult";
        hasAccess: boolean;
        accessLevel: AccessLevel;
    };
};
type CheckIfUserHasAccessToCompanyQueryVariables = Exact<{
    companyId: Scalars["ID"]["input"];
    userId?: InputMaybe<Scalars["ID"]["input"]>;
}>;
type CheckIfUserHasAccessToCompanyQuery = {
    __typename?: "PublicQuery";
    hasAccessToCompany: {
        __typename?: "HasAccessResult";
        hasAccess: boolean;
        accessLevel: AccessLevel;
    };
};
type CheckIfUserHasAccessToExperienceQueryVariables = Exact<{
    experienceId: Scalars["ID"]["input"];
    userId?: InputMaybe<Scalars["ID"]["input"]>;
}>;
type CheckIfUserHasAccessToExperienceQuery = {
    __typename?: "PublicQuery";
    hasAccessToExperience: {
        __typename?: "HasAccessResult";
        hasAccess: boolean;
        accessLevel: AccessLevel;
    };
};
type CreateAppBuildMutationVariables = Exact<{
    input: CreateAppBuildInput;
}>;
type CreateAppBuildMutation = {
    __typename?: "PublicMutation";
    createAppBuild?: {
        __typename?: "AppBuild";
        id: string;
        createdAt: number;
        fileUrl: string;
        checksum: string;
        platform: AppBuildPlatforms;
        reviewMessage?: string | null;
        supportedAppViewTypes: Array<AppViewTypes>;
        status: AppBuildStatuses;
    } | null;
};
type GetAttachmentQueryVariables = Exact<{
    id: Scalars["ID"]["input"];
}>;
type GetAttachmentQuery = {
    __typename?: "PublicQuery";
    attachment: {
        __typename: "AudioAttachment";
        duration?: number | null;
        waveformUrl?: string | null;
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | {
        __typename: "ImageAttachment";
        height?: number | null;
        width?: number | null;
        blurhash?: string | null;
        aspectRatio?: number | null;
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | {
        __typename: "OtherAttachment";
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    } | {
        __typename: "VideoAttachment";
        height?: number | null;
        width?: number | null;
        duration?: number | null;
        aspectRatio?: number | null;
        id: string;
        signedId?: string | null;
        analyzed: boolean;
        byteSizeV2?: string | null;
        filename?: string | null;
        contentType?: string | null;
        preview: {
            __typename?: "AttachmentSource";
            url: string;
        };
        source: {
            __typename?: "AttachmentSource";
            url: string;
        };
    };
};
type ProcessAttachmentMutationVariables = Exact<{
    input: AnalyzeAttachmentInput;
}>;
type ProcessAttachmentMutation = {
    __typename?: "PublicMutation";
    mediaAnalyzeAttachment?: boolean | null;
};
type UploadMediaMutationVariables = Exact<{
    input: DirectUploadInput;
}>;
type UploadMediaMutation = {
    __typename?: "PublicMutation";
    mediaDirectUpload?: {
        __typename?: "DirectUpload";
        id: string;
        headers: {
            [key: string]: any;
        };
        uploadUrl?: string | null;
        multipartUploadId?: string | null;
        multipartUploadUrls?: Array<{
            __typename?: "MultipartUrl";
            partNumber: number;
            url: string;
        }> | null;
    } | null;
};
type GetCompanyLedgerAccountQueryVariables = Exact<{
    companyId: Scalars["ID"]["input"];
}>;
type GetCompanyLedgerAccountQuery = {
    __typename?: "PublicQuery";
    company?: {
        __typename?: "Company";
        ledgerAccount: {
            __typename?: "LedgerAccount";
            id: string;
            transferFee?: number | null;
            balanceCaches: {
                __typename?: "BalanceCacheConnection";
                nodes?: Array<{
                    __typename?: "BalanceCache";
                    balance: number;
                    pendingBalance: number;
                    currency: Currencies;
                } | null> | null;
            };
        };
    } | null;
};
type GetWaitlistEntriesForCompanyQueryVariables = Exact<{
    companyId: Scalars["ID"]["input"];
    after?: InputMaybe<Scalars["String"]["input"]>;
    before?: InputMaybe<Scalars["String"]["input"]>;
    first?: InputMaybe<Scalars["Int"]["input"]>;
    last?: InputMaybe<Scalars["Int"]["input"]>;
}>;
type GetWaitlistEntriesForCompanyQuery = {
    __typename?: "PublicQuery";
    company?: {
        __typename?: "Company";
        creatorDashboardTable: {
            __typename?: "CreatorDashboardTable";
            entries: {
                __typename?: "EntryConnection";
                totalCount: number;
                nodes?: Array<{
                    __typename?: "Entry";
                    status: EntryStatus;
                    name?: string | null;
                    customFieldResponses?: Array<{
                        __typename?: "CustomFieldResponse";
                        question: string;
                        answer: string;
                    }> | null;
                    plan?: {
                        __typename?: "Plan";
                        id: string;
                    } | null;
                    user: {
                        __typename?: "PublicProfileUser";
                        id: string;
                        username: string;
                        profilePicture?: {
                            __typename?: "AudioAttachment";
                            sourceUrl?: string | null;
                        } | {
                            __typename?: "ImageAttachment";
                            sourceUrl?: string | null;
                        } | {
                            __typename?: "OtherAttachment";
                            sourceUrl?: string | null;
                        } | {
                            __typename?: "VideoAttachment";
                            sourceUrl?: string | null;
                        } | null;
                    };
                } | null> | null;
                pageInfo: {
                    __typename?: "PageInfo";
                    hasNextPage: boolean;
                    hasPreviousPage: boolean;
                    startCursor?: string | null;
                    endCursor?: string | null;
                };
            };
        };
    } | null;
};
type CreateAssessmentQuestionMutationVariables = Exact<{
    input: CreateAssessmentQuestionInput;
}>;
type CreateAssessmentQuestionMutation = {
    __typename?: "PublicMutation";
    createAssessmentQuestion?: {
        __typename?: "AssessmentQuestion";
        id: string;
        correctAnswer: string;
        order: number;
        questionText: string;
        questionType: CoursesAssessmentQuestionTypes;
        image?: {
            __typename: "AudioAttachment";
            duration?: number | null;
            waveformUrl?: string | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "ImageAttachment";
            height?: number | null;
            width?: number | null;
            blurhash?: string | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "OtherAttachment";
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "VideoAttachment";
            height?: number | null;
            width?: number | null;
            duration?: number | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            preview: {
                __typename?: "AttachmentSource";
                url: string;
            };
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | null;
        options: Array<{
            __typename?: "AssessmentQuestionOption";
            id: string;
            isCorrect: boolean;
            optionText: string;
            order: number;
        }>;
    } | null;
};
type CreateChapterMutationVariables = Exact<{
    input: CreateChapterInput;
}>;
type CreateChapterMutation = {
    __typename?: "PublicMutation";
    createChapter?: {
        __typename?: "Chapter";
        id: string;
        title: string;
        order: number;
        lessons: Array<{
            __typename?: "Lesson";
            id: string;
            lessonType: LessonTypes;
            title: string;
            order: number;
            visibility: LessonVisibilities;
            daysFromCourseStartUntilUnlock?: number | null;
            content?: string | null;
            muxAsset?: {
                __typename?: "MuxAsset";
                id: string;
                muxAssetId?: string | null;
                playbackId?: string | null;
                signedPlaybackId?: string | null;
                signedThumbnailPlaybackToken?: string | null;
                signedVideoPlaybackToken?: string | null;
                signedStoryboardPlaybackToken?: string | null;
                durationSeconds?: number | null;
                status: MuxAssetStatuses;
                finishedUploadingAt?: number | null;
            } | null;
        }>;
    } | null;
};
type CreateCourseMutationVariables = Exact<{
    input: CreateCourseInput;
}>;
type CreateCourseMutation = {
    __typename?: "PublicMutation";
    createCourse?: {
        __typename?: "Course";
        certificateAfterCompletionEnabled?: boolean | null;
        coverImage?: string | null;
        description?: string | null;
        id: string;
        language: Languages;
        requireCompletingLessonsInOrder: boolean;
        tagline?: string | null;
        title?: string | null;
        videoProtectionEnabled: boolean;
        chapters: Array<{
            __typename?: "Chapter";
            id: string;
            title: string;
            order: number;
            lessons: Array<{
                __typename?: "Lesson";
                id: string;
                lessonType: LessonTypes;
                title: string;
                order: number;
                visibility: LessonVisibilities;
                daysFromCourseStartUntilUnlock?: number | null;
                content?: string | null;
                muxAsset?: {
                    __typename?: "MuxAsset";
                    id: string;
                    muxAssetId?: string | null;
                    playbackId?: string | null;
                    signedPlaybackId?: string | null;
                    signedThumbnailPlaybackToken?: string | null;
                    signedVideoPlaybackToken?: string | null;
                    signedStoryboardPlaybackToken?: string | null;
                    durationSeconds?: number | null;
                    status: MuxAssetStatuses;
                    finishedUploadingAt?: number | null;
                } | null;
            }>;
        }>;
    } | null;
};
type CreateLessonMutationVariables = Exact<{
    input: CreateLessonInput;
}>;
type CreateLessonMutation = {
    __typename?: "PublicMutation";
    createLesson?: {
        __typename?: "Lesson";
        id: string;
        lessonType: LessonTypes;
        title: string;
        order: number;
        visibility: LessonVisibilities;
        content?: string | null;
        daysFromCourseStartUntilUnlock?: number | null;
        muxAsset?: {
            __typename?: "MuxAsset";
            id: string;
            muxAssetId?: string | null;
            playbackId?: string | null;
            signedPlaybackId?: string | null;
            signedThumbnailPlaybackToken?: string | null;
            signedVideoPlaybackToken?: string | null;
            signedStoryboardPlaybackToken?: string | null;
            durationSeconds?: number | null;
            status: MuxAssetStatuses;
            finishedUploadingAt?: number | null;
        } | null;
        assessmentQuestions: Array<{
            __typename?: "AssessmentQuestion";
            id: string;
            correctAnswer: string;
            order: number;
            questionText: string;
            questionType: CoursesAssessmentQuestionTypes;
            image?: {
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null;
            options: Array<{
                __typename?: "AssessmentQuestionOption";
                id: string;
                isCorrect: boolean;
                optionText: string;
                order: number;
            }>;
        }>;
        attachments: {
            __typename?: "AttachmentInterfaceConnection";
            nodes?: Array<{
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null> | null;
        };
        mainPdf?: {
            __typename: "AudioAttachment";
            duration?: number | null;
            waveformUrl?: string | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "ImageAttachment";
            height?: number | null;
            width?: number | null;
            blurhash?: string | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "OtherAttachment";
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "VideoAttachment";
            height?: number | null;
            width?: number | null;
            duration?: number | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            preview: {
                __typename?: "AttachmentSource";
                url: string;
            };
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | null;
    } | null;
};
type DeleteAssessmentQuestionImageMutationVariables = Exact<{
    input: DeleteAssessmentQuestionImageInput;
}>;
type DeleteAssessmentQuestionImageMutation = {
    __typename?: "PublicMutation";
    deleteAssessmentQuestionImage?: boolean | null;
};
type DeleteChapterMutationVariables = Exact<{
    input: DeleteChapterInput;
}>;
type DeleteChapterMutation = {
    __typename?: "PublicMutation";
    deleteChapter?: boolean | null;
};
type DeleteLessonAttachmentMutationVariables = Exact<{
    input: DeleteLessonAttachmentInput;
}>;
type DeleteLessonAttachmentMutation = {
    __typename?: "PublicMutation";
    deleteLessonAttachment?: boolean | null;
};
type DeleteLessonMutationVariables = Exact<{
    input: DeleteLessonInput;
}>;
type DeleteLessonMutation = {
    __typename?: "PublicMutation";
    deleteLesson?: boolean | null;
};
type GetCourseQueryVariables = Exact<{
    courseId: Scalars["ID"]["input"];
}>;
type GetCourseQuery = {
    __typename?: "PublicQuery";
    course?: {
        __typename?: "Course";
        certificateAfterCompletionEnabled?: boolean | null;
        coverImage?: string | null;
        description?: string | null;
        id: string;
        language: Languages;
        requireCompletingLessonsInOrder: boolean;
        tagline?: string | null;
        title?: string | null;
        videoProtectionEnabled: boolean;
        chapters: Array<{
            __typename?: "Chapter";
            id: string;
            title: string;
            order: number;
            lessons: Array<{
                __typename?: "Lesson";
                id: string;
                lessonType: LessonTypes;
                title: string;
                order: number;
                visibility: LessonVisibilities;
                daysFromCourseStartUntilUnlock?: number | null;
                content?: string | null;
                muxAsset?: {
                    __typename?: "MuxAsset";
                    id: string;
                    muxAssetId?: string | null;
                    playbackId?: string | null;
                    signedPlaybackId?: string | null;
                    signedThumbnailPlaybackToken?: string | null;
                    signedVideoPlaybackToken?: string | null;
                    signedStoryboardPlaybackToken?: string | null;
                    durationSeconds?: number | null;
                    status: MuxAssetStatuses;
                    finishedUploadingAt?: number | null;
                } | null;
            }>;
        }>;
    } | null;
};
type GetLessonQueryVariables = Exact<{
    courseId: Scalars["ID"]["input"];
    lessonId: Scalars["ID"]["input"];
}>;
type GetLessonQuery = {
    __typename?: "PublicQuery";
    course?: {
        __typename?: "Course";
        lesson?: {
            __typename?: "Lesson";
            id: string;
            lessonType: LessonTypes;
            title: string;
            order: number;
            visibility: LessonVisibilities;
            content?: string | null;
            daysFromCourseStartUntilUnlock?: number | null;
            muxAsset?: {
                __typename?: "MuxAsset";
                id: string;
                muxAssetId?: string | null;
                playbackId?: string | null;
                signedPlaybackId?: string | null;
                signedThumbnailPlaybackToken?: string | null;
                signedVideoPlaybackToken?: string | null;
                signedStoryboardPlaybackToken?: string | null;
                durationSeconds?: number | null;
                status: MuxAssetStatuses;
                finishedUploadingAt?: number | null;
            } | null;
            assessmentQuestions: Array<{
                __typename?: "AssessmentQuestion";
                id: string;
                correctAnswer: string;
                order: number;
                questionText: string;
                questionType: CoursesAssessmentQuestionTypes;
                image?: {
                    __typename: "AudioAttachment";
                    duration?: number | null;
                    waveformUrl?: string | null;
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | {
                    __typename: "ImageAttachment";
                    height?: number | null;
                    width?: number | null;
                    blurhash?: string | null;
                    aspectRatio?: number | null;
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | {
                    __typename: "OtherAttachment";
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | {
                    __typename: "VideoAttachment";
                    height?: number | null;
                    width?: number | null;
                    duration?: number | null;
                    aspectRatio?: number | null;
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    preview: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | null;
                options: Array<{
                    __typename?: "AssessmentQuestionOption";
                    id: string;
                    isCorrect: boolean;
                    optionText: string;
                    order: number;
                }>;
            }>;
            attachments: {
                __typename?: "AttachmentInterfaceConnection";
                nodes?: Array<{
                    __typename: "AudioAttachment";
                    duration?: number | null;
                    waveformUrl?: string | null;
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | {
                    __typename: "ImageAttachment";
                    height?: number | null;
                    width?: number | null;
                    blurhash?: string | null;
                    aspectRatio?: number | null;
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | {
                    __typename: "OtherAttachment";
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | {
                    __typename: "VideoAttachment";
                    height?: number | null;
                    width?: number | null;
                    duration?: number | null;
                    aspectRatio?: number | null;
                    id: string;
                    signedId?: string | null;
                    analyzed: boolean;
                    byteSizeV2?: string | null;
                    filename?: string | null;
                    contentType?: string | null;
                    preview: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                    source: {
                        __typename?: "AttachmentSource";
                        url: string;
                    };
                } | null> | null;
            };
            mainPdf?: {
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null;
        } | null;
    } | null;
};
type GetUserLessonInteractionsQueryVariables = Exact<{
    courseId: Scalars["ID"]["input"];
}>;
type GetUserLessonInteractionsQuery = {
    __typename?: "PublicQuery";
    course?: {
        __typename?: "Course";
        chapters: Array<{
            __typename?: "Chapter";
            id: string;
            lessons: Array<{
                __typename?: "Lesson";
                id: string;
                lessonInteraction?: {
                    __typename?: "LessonInteraction";
                    id: string;
                    completed: boolean;
                    createdAt: number;
                } | null;
            }>;
        }>;
    } | null;
};
type ListCoursesForCompanyQueryVariables = Exact<{
    companyId: Scalars["ID"]["input"];
    first?: InputMaybe<Scalars["Int"]["input"]>;
    after?: InputMaybe<Scalars["String"]["input"]>;
}>;
type ListCoursesForCompanyQuery = {
    __typename?: "PublicQuery";
    company?: {
        __typename?: "Company";
        courses: {
            __typename?: "CourseConnection";
            totalCount: number;
            nodes?: Array<{
                __typename?: "Course";
                id: string;
                title?: string | null;
                coverImage?: string | null;
                experience: {
                    __typename?: "PublicExperience";
                    id: string;
                    accessPasses: Array<{
                        __typename?: "PublicAccessPass";
                        id: string;
                        title: string;
                    }>;
                };
            } | null> | null;
            pageInfo: {
                __typename?: "PageInfo";
                hasNextPage: boolean;
                endCursor?: string | null;
            };
        };
    } | null;
};
type ListCoursesForExperienceQueryVariables = Exact<{
    experienceId: Scalars["ID"]["input"];
    first?: InputMaybe<Scalars["Int"]["input"]>;
    after?: InputMaybe<Scalars["String"]["input"]>;
}>;
type ListCoursesForExperienceQuery = {
    __typename?: "PublicQuery";
    publicExperience: {
        __typename?: "PublicExperience";
        courses: {
            __typename?: "CourseConnection";
            totalCount: number;
            nodes?: Array<{
                __typename?: "Course";
                certificateAfterCompletionEnabled?: boolean | null;
                coverImage?: string | null;
                description?: string | null;
                id: string;
                language: Languages;
                requireCompletingLessonsInOrder: boolean;
                tagline?: string | null;
                title?: string | null;
                videoProtectionEnabled: boolean;
                chapters: Array<{
                    __typename?: "Chapter";
                    id: string;
                    title: string;
                    order: number;
                    lessons: Array<{
                        __typename?: "Lesson";
                        id: string;
                        lessonType: LessonTypes;
                        title: string;
                        order: number;
                        visibility: LessonVisibilities;
                        daysFromCourseStartUntilUnlock?: number | null;
                        content?: string | null;
                        muxAsset?: {
                            __typename?: "MuxAsset";
                            id: string;
                            muxAssetId?: string | null;
                            playbackId?: string | null;
                            signedPlaybackId?: string | null;
                            signedThumbnailPlaybackToken?: string | null;
                            signedVideoPlaybackToken?: string | null;
                            signedStoryboardPlaybackToken?: string | null;
                            durationSeconds?: number | null;
                            status: MuxAssetStatuses;
                            finishedUploadingAt?: number | null;
                        } | null;
                    }>;
                }>;
            } | null> | null;
            pageInfo: {
                __typename?: "PageInfo";
                hasNextPage: boolean;
                endCursor?: string | null;
            };
        };
    };
};
type MarkLessonAsCompletedMutationVariables = Exact<{
    input: MarkLessonAsCompletedInput;
}>;
type MarkLessonAsCompletedMutation = {
    __typename?: "PublicMutation";
    markLessonAsCompleted?: boolean | null;
};
type MoveCourseMutationVariables = Exact<{
    input: MoveCourseInput;
}>;
type MoveCourseMutation = {
    __typename?: "PublicMutation";
    moveCourse?: boolean | null;
};
type UpdateChapterOrderMutationVariables = Exact<{
    input: UpdateChapterOrderInput;
}>;
type UpdateChapterOrderMutation = {
    __typename?: "PublicMutation";
    updateChapterOrder?: {
        __typename?: "Chapter";
        id: string;
        title: string;
        order: number;
        lessons: Array<{
            __typename?: "Lesson";
            id: string;
            lessonType: LessonTypes;
            title: string;
            order: number;
            visibility: LessonVisibilities;
            daysFromCourseStartUntilUnlock?: number | null;
            content?: string | null;
            muxAsset?: {
                __typename?: "MuxAsset";
                id: string;
                muxAssetId?: string | null;
                playbackId?: string | null;
                signedPlaybackId?: string | null;
                signedThumbnailPlaybackToken?: string | null;
                signedVideoPlaybackToken?: string | null;
                signedStoryboardPlaybackToken?: string | null;
                durationSeconds?: number | null;
                status: MuxAssetStatuses;
                finishedUploadingAt?: number | null;
            } | null;
        }>;
    } | null;
};
type UpdateChapterMutationVariables = Exact<{
    input: UpdateChapterInput;
}>;
type UpdateChapterMutation = {
    __typename?: "PublicMutation";
    updateChapter?: {
        __typename?: "Chapter";
        id: string;
        title: string;
        order: number;
        lessons: Array<{
            __typename?: "Lesson";
            id: string;
            lessonType: LessonTypes;
            title: string;
            order: number;
            visibility: LessonVisibilities;
            daysFromCourseStartUntilUnlock?: number | null;
            content?: string | null;
            muxAsset?: {
                __typename?: "MuxAsset";
                id: string;
                muxAssetId?: string | null;
                playbackId?: string | null;
                signedPlaybackId?: string | null;
                signedThumbnailPlaybackToken?: string | null;
                signedVideoPlaybackToken?: string | null;
                signedStoryboardPlaybackToken?: string | null;
                durationSeconds?: number | null;
                status: MuxAssetStatuses;
                finishedUploadingAt?: number | null;
            } | null;
        }>;
    } | null;
};
type UpdateLessonOrderMutationVariables = Exact<{
    input: UpdateLessonOrderInput;
}>;
type UpdateLessonOrderMutation = {
    __typename?: "PublicMutation";
    updateLessonOrder?: {
        __typename?: "Lesson";
        id: string;
        lessonType: LessonTypes;
        title: string;
        order: number;
        visibility: LessonVisibilities;
        content?: string | null;
        daysFromCourseStartUntilUnlock?: number | null;
        muxAsset?: {
            __typename?: "MuxAsset";
            id: string;
            muxAssetId?: string | null;
            playbackId?: string | null;
            signedPlaybackId?: string | null;
            signedThumbnailPlaybackToken?: string | null;
            signedVideoPlaybackToken?: string | null;
            signedStoryboardPlaybackToken?: string | null;
            durationSeconds?: number | null;
            status: MuxAssetStatuses;
            finishedUploadingAt?: number | null;
        } | null;
        assessmentQuestions: Array<{
            __typename?: "AssessmentQuestion";
            id: string;
            correctAnswer: string;
            order: number;
            questionText: string;
            questionType: CoursesAssessmentQuestionTypes;
            image?: {
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null;
            options: Array<{
                __typename?: "AssessmentQuestionOption";
                id: string;
                isCorrect: boolean;
                optionText: string;
                order: number;
            }>;
        }>;
        attachments: {
            __typename?: "AttachmentInterfaceConnection";
            nodes?: Array<{
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null> | null;
        };
        mainPdf?: {
            __typename: "AudioAttachment";
            duration?: number | null;
            waveformUrl?: string | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "ImageAttachment";
            height?: number | null;
            width?: number | null;
            blurhash?: string | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "OtherAttachment";
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "VideoAttachment";
            height?: number | null;
            width?: number | null;
            duration?: number | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            preview: {
                __typename?: "AttachmentSource";
                url: string;
            };
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | null;
    } | null;
};
type UpdateLessonMutationVariables = Exact<{
    input: UpdateLessonInput;
}>;
type UpdateLessonMutation = {
    __typename?: "PublicMutation";
    updateLesson?: {
        __typename?: "Lesson";
        id: string;
        lessonType: LessonTypes;
        title: string;
        order: number;
        visibility: LessonVisibilities;
        content?: string | null;
        daysFromCourseStartUntilUnlock?: number | null;
        muxAsset?: {
            __typename?: "MuxAsset";
            id: string;
            muxAssetId?: string | null;
            playbackId?: string | null;
            signedPlaybackId?: string | null;
            signedThumbnailPlaybackToken?: string | null;
            signedVideoPlaybackToken?: string | null;
            signedStoryboardPlaybackToken?: string | null;
            durationSeconds?: number | null;
            status: MuxAssetStatuses;
            finishedUploadingAt?: number | null;
        } | null;
        assessmentQuestions: Array<{
            __typename?: "AssessmentQuestion";
            id: string;
            correctAnswer: string;
            order: number;
            questionText: string;
            questionType: CoursesAssessmentQuestionTypes;
            image?: {
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null;
            options: Array<{
                __typename?: "AssessmentQuestionOption";
                id: string;
                isCorrect: boolean;
                optionText: string;
                order: number;
            }>;
        }>;
        attachments: {
            __typename?: "AttachmentInterfaceConnection";
            nodes?: Array<{
                __typename: "AudioAttachment";
                duration?: number | null;
                waveformUrl?: string | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "ImageAttachment";
                height?: number | null;
                width?: number | null;
                blurhash?: string | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "OtherAttachment";
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | {
                __typename: "VideoAttachment";
                height?: number | null;
                width?: number | null;
                duration?: number | null;
                aspectRatio?: number | null;
                id: string;
                signedId?: string | null;
                analyzed: boolean;
                byteSizeV2?: string | null;
                filename?: string | null;
                contentType?: string | null;
                preview: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
                source: {
                    __typename?: "AttachmentSource";
                    url: string;
                };
            } | null> | null;
        };
        mainPdf?: {
            __typename: "AudioAttachment";
            duration?: number | null;
            waveformUrl?: string | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "ImageAttachment";
            height?: number | null;
            width?: number | null;
            blurhash?: string | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "OtherAttachment";
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "VideoAttachment";
            height?: number | null;
            width?: number | null;
            duration?: number | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            preview: {
                __typename?: "AttachmentSource";
                url: string;
            };
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | null;
    } | null;
};
type GetExperienceQueryVariables = Exact<{
    experienceId: Scalars["ID"]["input"];
}>;
type GetExperienceQuery = {
    __typename?: "PublicQuery";
    experience: {
        __typename?: "PublicExperience";
        upsellType?: UpsellTypes | null;
        id: string;
        name: string;
        description?: string | null;
        upsellPlan?: {
            __typename?: "PublicPlan";
            id: string;
            baseCurrency: Currencies;
            rawRenewalPrice: number;
            rawInitialPrice: number;
            initialPriceDue: number;
            createdAt: number;
            updatedAt: number;
            billingPeriod?: number | null;
            trialPeriodDays?: number | null;
            expirationDays?: number | null;
            unlimitedStock: boolean;
            paymentLinkDescription?: string | null;
            releaseMethod: ReleaseMethod;
            stock?: number | null;
            visibility: Visibility;
            planType: PlanTypes;
        } | null;
        logo?: {
            __typename?: "AudioAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "ImageAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "OtherAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "VideoAttachment";
            sourceUrl?: string | null;
        } | null;
        app: {
            __typename?: "PublicApp";
            id: string;
            name: string;
            icon?: {
                __typename?: "AudioAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "ImageAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "OtherAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "VideoAttachment";
                sourceUrl?: string | null;
            } | null;
        };
        company: {
            __typename?: "PublicCompany";
            id: string;
            title: string;
        };
    };
};
type ListAccessPassesForExperienceQueryVariables = Exact<{
    experienceId: Scalars["ID"]["input"];
}>;
type ListAccessPassesForExperienceQuery = {
    __typename?: "PublicQuery";
    experience: {
        __typename?: "PublicExperience";
        experienceId: string;
        accessPasses: Array<{
            __typename?: "PublicAccessPass";
            id: string;
            title: string;
            shortenedDescription?: string | null;
            verified: boolean;
            visibility: Visibility;
            route: string;
            activeUsersCount: number;
            logo?: {
                __typename?: "AudioAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "ImageAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "OtherAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "VideoAttachment";
                sourceUrl?: string | null;
            } | null;
        }>;
    };
};
type ListExperiencesQueryVariables = Exact<{
    after?: InputMaybe<Scalars["String"]["input"]>;
    first?: InputMaybe<Scalars["Int"]["input"]>;
    accessPassId?: InputMaybe<Scalars["ID"]["input"]>;
    appId?: InputMaybe<Scalars["ID"]["input"]>;
    onAccessPass?: InputMaybe<Scalars["Boolean"]["input"]>;
    companyId: Scalars["ID"]["input"];
}>;
type ListExperiencesQuery = {
    __typename?: "PublicQuery";
    company?: {
        __typename?: "Company";
        experiencesV2: {
            __typename?: "ExperienceInterfaceConnection";
            totalCount: number;
            nodes?: Array<{
                __typename?: "CustomPrivate";
                id: string;
                name?: string | null;
                description?: string | null;
                logo?: {
                    __typename?: "ImgSrcset";
                    sourceUrl: string;
                } | null;
                app: {
                    __typename?: "App";
                    id: string;
                    name: string;
                    icon?: {
                        __typename?: "AudioAttachment";
                        sourceUrl?: string | null;
                    } | {
                        __typename?: "ImageAttachment";
                        sourceUrl?: string | null;
                    } | {
                        __typename?: "OtherAttachment";
                        sourceUrl?: string | null;
                    } | {
                        __typename?: "VideoAttachment";
                        sourceUrl?: string | null;
                    } | null;
                };
            } | null> | null;
            pageInfo: {
                __typename?: "PageInfo";
                hasNextPage: boolean;
                endCursor?: string | null;
            };
        };
    } | null;
};
type ListUsersForExperienceQueryVariables = Exact<{
    experienceId: Scalars["ID"]["input"];
    after?: InputMaybe<Scalars["String"]["input"]>;
    before?: InputMaybe<Scalars["String"]["input"]>;
    direction?: InputMaybe<Direction>;
    first?: InputMaybe<Scalars["Int"]["input"]>;
    searchQuery?: InputMaybe<Scalars["String"]["input"]>;
}>;
type ListUsersForExperienceQuery = {
    __typename?: "PublicQuery";
    publicExperience: {
        __typename?: "PublicExperience";
        users?: {
            __typename?: "PublicProfileUserConnection";
            totalCount: number;
            nodes?: Array<{
                __typename?: "PublicProfileUser";
                id: string;
                username: string;
                profilePicture?: {
                    __typename?: "AudioAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "ImageAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "OtherAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "VideoAttachment";
                    sourceUrl?: string | null;
                } | null;
            } | null> | null;
            pageInfo: {
                __typename?: "PageInfo";
                endCursor?: string | null;
                hasNextPage: boolean;
                hasPreviousPage: boolean;
            };
        } | null;
    };
};
type CreateForumPostMutationVariables = Exact<{
    input: CreateForumPostInput;
}>;
type CreateForumPostMutation = {
    __typename?: "PublicMutation";
    createForumPost?: {
        __typename?: "ForumPost";
        id: string;
        createdAt: string;
        updatedAt: string;
        content?: string | null;
        richContent?: string | null;
        isDeleted: boolean;
        isEdited: boolean;
        mentionedUserIds: Array<string>;
        parentId?: string | null;
        viewCount?: number | null;
        isPinned: boolean;
        attachments: Array<{
            __typename?: "AudioAttachment";
            id: string;
            contentType?: string | null;
            sourceUrl?: string | null;
        } | {
            __typename?: "ImageAttachment";
            id: string;
            contentType?: string | null;
            sourceUrl?: string | null;
        } | {
            __typename?: "OtherAttachment";
            id: string;
            contentType?: string | null;
            sourceUrl?: string | null;
        } | {
            __typename?: "VideoAttachment";
            id: string;
            contentType?: string | null;
            sourceUrl?: string | null;
        }>;
        user: {
            __typename?: "PublicProfileUser";
            id: string;
            name?: string | null;
            username: string;
            phoneVerified: boolean;
            city?: string | null;
            country?: string | null;
            profilePicture?: {
                __typename?: "AudioAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "ImageAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "OtherAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "VideoAttachment";
                sourceUrl?: string | null;
            } | null;
        };
    } | null;
};
type FindOrCreateForumMutationVariables = Exact<{
    input: CreateForumInput;
}>;
type FindOrCreateForumMutation = {
    __typename?: "PublicMutation";
    createForum?: {
        __typename?: "Experience";
        id: string;
        link: string;
    } | null;
};
type ListForumPostsFromForumQueryVariables = Exact<{
    experienceId: Scalars["ID"]["input"];
}>;
type ListForumPostsFromForumQuery = {
    __typename?: "PublicQuery";
    feedPosts?: {
        __typename?: "FeedPostsResponse";
        posts: Array<{
            __typename?: "ChatFeed";
        } | {
            __typename?: "DmsFeed";
        } | {
            __typename?: "DmsFeedMember";
        } | {
            __typename?: "DmsPost";
        } | {
            __typename?: "ForumFeed";
        } | {
            __typename?: "ForumPost";
            id: string;
            createdAt: string;
            updatedAt: string;
            content?: string | null;
            richContent?: string | null;
            isDeleted: boolean;
            isEdited: boolean;
            mentionedUserIds: Array<string>;
            parentId?: string | null;
            viewCount?: number | null;
            isPinned: boolean;
            attachments: Array<{
                __typename?: "AudioAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            } | {
                __typename?: "ImageAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            } | {
                __typename?: "OtherAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            } | {
                __typename?: "VideoAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            }>;
            user: {
                __typename?: "PublicProfileUser";
                id: string;
                name?: string | null;
                username: string;
                phoneVerified: boolean;
                city?: string | null;
                country?: string | null;
                profilePicture?: {
                    __typename?: "AudioAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "ImageAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "OtherAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "VideoAttachment";
                    sourceUrl?: string | null;
                } | null;
            };
        } | {
            __typename?: "LivestreamFeed";
        } | {
            __typename?: "MutedUser";
        } | {
            __typename?: "PublicLivestreamFeed";
        } | {
            __typename?: "Reaction";
        } | {
            __typename?: "ReactionCount";
        }>;
    } | null;
};
type FindOrCreateChatMutationVariables = Exact<{
    input: CreateChatInput;
}>;
type FindOrCreateChatMutation = {
    __typename?: "PublicMutation";
    createChat?: {
        __typename?: "Experience";
        id: string;
        link: string;
    } | null;
};
type ListDirectMessageConversationsQueryVariables = Exact<{
    beforeTimestamp?: InputMaybe<Scalars["BigInt"]["input"]>;
    limit?: InputMaybe<Scalars["Int"]["input"]>;
    query?: InputMaybe<Scalars["String"]["input"]>;
    status?: InputMaybe<DmsFeedMemberStatuses>;
    unread?: InputMaybe<Scalars["Boolean"]["input"]>;
}>;
type ListDirectMessageConversationsQuery = {
    __typename?: "PublicQuery";
    myDmsChannelsV2: Array<{
        __typename?: "DmsChannel";
        createdAt: number;
        id: string;
        isPinned: boolean;
        customName?: string | null;
        isGroupChat: boolean;
        isUnread: boolean;
        feedMembers: Array<{
            __typename?: "FeedMember";
            username: string;
            id: string;
        }>;
        lastMessage?: {
            __typename?: "Post";
            content?: string | null;
            userId: string;
        } | null;
    }>;
};
type ListMessagesFromChatQueryVariables = Exact<{
    chatExperienceId?: InputMaybe<Scalars["ID"]["input"]>;
}>;
type ListMessagesFromChatQuery = {
    __typename?: "PublicQuery";
    feedPosts?: {
        __typename?: "FeedPostsResponse";
        posts: Array<{
            __typename?: "ChatFeed";
        } | {
            __typename?: "DmsFeed";
        } | {
            __typename?: "DmsFeedMember";
        } | {
            __typename?: "DmsPost";
            id: string;
            createdAt: string;
            updatedAt: string;
            content?: string | null;
            richContent?: string | null;
            isDeleted: boolean;
            isEdited: boolean;
            isPinned: boolean;
            isEveryoneMentioned: boolean;
            mentionedUserIds: Array<string>;
            messageType: DmsPostTypes;
            replyingToPostId?: string | null;
            viewCount?: number | null;
            attachments: Array<{
                __typename?: "AudioAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            } | {
                __typename?: "ImageAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            } | {
                __typename?: "OtherAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            } | {
                __typename?: "VideoAttachment";
                id: string;
                contentType?: string | null;
                sourceUrl?: string | null;
            }>;
            user: {
                __typename?: "PublicProfileUser";
                id: string;
                name?: string | null;
                username: string;
                phoneVerified: boolean;
                city?: string | null;
                country?: string | null;
                profilePicture?: {
                    __typename?: "AudioAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "ImageAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "OtherAttachment";
                    sourceUrl?: string | null;
                } | {
                    __typename?: "VideoAttachment";
                    sourceUrl?: string | null;
                } | null;
            };
        } | {
            __typename?: "ForumFeed";
        } | {
            __typename?: "ForumPost";
        } | {
            __typename?: "LivestreamFeed";
        } | {
            __typename?: "MutedUser";
        } | {
            __typename?: "PublicLivestreamFeed";
        } | {
            __typename?: "Reaction";
        } | {
            __typename?: "ReactionCount";
        }>;
    } | null;
};
type SendDirectMessageToUserMutationVariables = Exact<{
    toUserIdOrUsername: Scalars["ID"]["input"];
    message: Scalars["String"]["input"];
}>;
type SendDirectMessageToUserMutation = {
    __typename?: "PublicMutation";
    sendMessage?: string | null;
};
type SendMessageToChatMutationVariables = Exact<{
    experienceId: Scalars["ID"]["input"];
    message: Scalars["String"]["input"];
}>;
type SendMessageToChatMutation = {
    __typename?: "PublicMutation";
    sendMessage?: string | null;
};
type SendPushNotificationMutationVariables = Exact<{
    input: SendNotificationInput;
}>;
type SendPushNotificationMutation = {
    __typename?: "PublicMutation";
    sendNotification?: boolean | null;
};
type ChargeUserMutationVariables = Exact<{
    input: ChargeUserInput;
}>;
type ChargeUserMutation = {
    __typename?: "PublicMutation";
    chargeUser?: {
        __typename?: "ChargeUserResponse";
        status: ChargeUserResponseStatus;
        inAppPurchase?: {
            __typename?: "CheckoutSession";
            id: string;
            planId: string;
        } | null;
    } | null;
};
type CreateCheckoutSessionMutationVariables = Exact<{
    input: CreateCheckoutSessionInput;
}>;
type CreateCheckoutSessionMutation = {
    __typename?: "PublicMutation";
    createCheckoutSession?: {
        __typename?: "CheckoutSession";
        id: string;
        planId: string;
    } | null;
};
type ListReceiptsForCompanyQueryVariables = Exact<{
    companyId: Scalars["ID"]["input"];
    first?: InputMaybe<Scalars["Int"]["input"]>;
    after?: InputMaybe<Scalars["String"]["input"]>;
    filter?: InputMaybe<ReceiptV2Filters>;
}>;
type ListReceiptsForCompanyQuery = {
    __typename?: "PublicQuery";
    company?: {
        __typename?: "Company";
        receipts?: {
            __typename?: "ReceiptConnection";
            nodes?: Array<{
                __typename?: "Receipt";
                id: string;
                settledUsdAmount?: number | null;
                billingReason?: string | null;
                last4?: string | null;
                currency?: Currencies | null;
                status?: ReceiptStatus | null;
                createdAt: number;
                total?: number | null;
                brand?: string | null;
                paymentProcessor?: ReceiptPaymentProcessor | null;
                paymentMethodType?: string | null;
                disputeAlertedAt?: number | null;
                finalAmount: number;
                presentedFinalAmount?: number | null;
                presentedSettledUsdAmount?: number | null;
                refundedAmount?: number | null;
                friendlyStatus: FriendlyReceiptStatus;
                failureMessage?: string | null;
                refundable: boolean;
                retryable: boolean;
                paidAt?: number | null;
                amountAfterFees: number;
                chargeSkippedPriceTooLow: boolean;
                lastPaymentAttempt?: number | null;
                autoRefunded: boolean;
                totalUsdAmount?: number | null;
                mostRecentRiskScore?: number | null;
                address?: {
                    __typename?: "Address";
                    name?: string | null;
                    line1?: string | null;
                    line2?: string | null;
                    city?: string | null;
                    state?: string | null;
                    postalCode?: string | null;
                    country?: string | null;
                } | null;
                member?: {
                    __typename?: "CompanyMember";
                    header: string;
                    user?: {
                        __typename?: "CompanyMemberUser";
                        id: string;
                        username: string;
                        name?: string | null;
                        email?: string | null;
                        country?: string | null;
                        countryName?: string | null;
                    } | null;
                    imageSrcset: {
                        __typename?: "ImgSrcset";
                        original: string;
                        double: string;
                        isVideo: boolean;
                    };
                } | null;
                plan?: {
                    __typename?: "Plan";
                    id: string;
                    title: string;
                    formattedPrice: string;
                    initialPrice: number;
                    renewalPrice: number;
                    paymentLinkDescription?: string | null;
                } | null;
                membership?: {
                    __typename?: "Membership";
                    id: string;
                    status: MembershipStatus;
                } | null;
                promoCode?: {
                    __typename?: "PromoCode";
                    id: string;
                    code?: string | null;
                    amountOff: number;
                    baseCurrency: Currencies;
                    promoType: PromoTypes;
                    numberOfIntervals?: number | null;
                } | null;
                accessPass?: {
                    __typename?: "AccessPass";
                    id: string;
                    title: string;
                } | null;
            } | null> | null;
            pageInfo: {
                __typename?: "PageInfo";
                hasNextPage: boolean;
                endCursor?: string | null;
            };
        } | null;
    } | null;
};
type PayUserMutationVariables = Exact<{
    input: TransferFundsInput;
}>;
type PayUserMutation = {
    __typename?: "PublicMutation";
    transferFunds?: boolean | null;
};
type GetCurrentUserQueryVariables = Exact<{
    [key: string]: never;
}>;
type GetCurrentUserQuery = {
    __typename?: "PublicQuery";
    viewer: {
        __typename?: "Viewer";
        user: {
            __typename?: "User";
            bio?: string | null;
            phoneVerified: boolean;
            bannerImage?: string | null;
            createdAt: number;
            dateOfBirthDay?: number | null;
            dateOfBirthMonth?: number | null;
            dateOfBirthYear?: number | null;
            id: string;
            email?: string | null;
            name?: string | null;
            username: string;
            ledgerAccount: {
                __typename?: "LedgerAccount";
                id: string;
                transferFee?: number | null;
                balanceCaches: {
                    __typename?: "BalanceCacheConnection";
                    nodes?: Array<{
                        __typename?: "BalanceCache";
                        balance: number;
                        pendingBalance: number;
                        currency: Currencies;
                    } | null> | null;
                };
            };
            profilePicture?: {
                __typename?: "AudioAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "ImageAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "OtherAttachment";
                sourceUrl?: string | null;
            } | {
                __typename?: "VideoAttachment";
                sourceUrl?: string | null;
            } | null;
        };
    };
};
type GetUserLedgerAccountQueryVariables = Exact<{
    [key: string]: never;
}>;
type GetUserLedgerAccountQuery = {
    __typename?: "PublicQuery";
    viewer: {
        __typename?: "Viewer";
        user: {
            __typename?: "User";
            ledgerAccount: {
                __typename?: "LedgerAccount";
                id: string;
                transferFee?: number | null;
                balanceCaches: {
                    __typename?: "BalanceCacheConnection";
                    nodes?: Array<{
                        __typename?: "BalanceCache";
                        balance: number;
                        pendingBalance: number;
                        currency: Currencies;
                    } | null> | null;
                };
            };
        };
    };
};
type GetUserQueryVariables = Exact<{
    userId: Scalars["ID"]["input"];
}>;
type GetUserQuery = {
    __typename?: "PublicQuery";
    publicUser: {
        __typename?: "PublicProfileUser";
        bio?: string | null;
        phoneVerified: boolean;
        createdAt: number;
        id: string;
        name?: string | null;
        username: string;
        city?: string | null;
        country?: string | null;
        banner?: {
            __typename?: "AudioAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "ImageAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "OtherAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "VideoAttachment";
            sourceUrl?: string | null;
        } | null;
        profilePicture?: {
            __typename?: "AudioAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "ImageAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "OtherAttachment";
            sourceUrl?: string | null;
        } | {
            __typename?: "VideoAttachment";
            sourceUrl?: string | null;
        } | null;
    };
};
type Requester<C = {}> = <R, V>(operationId: string, operationName: string, operationType: "query" | "mutation", vars?: V, options?: C) => Promise<R>;
declare function getSdk<C>(requester: Requester<C>): {
    accessPasses: {
        getAccessPass(variables: GetAccessPassQueryVariables, options?: C): Promise<GetAccessPassQuery["accessPass"]>;
    };
    access: {
        checkIfUserHasAccessToAccessPass(variables: CheckIfUserHasAccessToAccessPassQueryVariables, options?: C): Promise<CheckIfUserHasAccessToAccessPassQuery["hasAccessToAccessPass"]>;
        checkIfUserHasAccessToCompany(variables: CheckIfUserHasAccessToCompanyQueryVariables, options?: C): Promise<CheckIfUserHasAccessToCompanyQuery["hasAccessToCompany"]>;
        checkIfUserHasAccessToExperience(variables: CheckIfUserHasAccessToExperienceQueryVariables, options?: C): Promise<CheckIfUserHasAccessToExperienceQuery["hasAccessToExperience"]>;
    };
    apps: {
        createAppBuild(variables: CreateAppBuildMutationVariables["input"], options?: C): Promise<CreateAppBuildMutation["createAppBuild"]>;
    };
    attachments: {
        getAttachment(variables: GetAttachmentQueryVariables, options?: C): Promise<GetAttachmentQuery["attachment"]>;
        processAttachment(variables: ProcessAttachmentMutationVariables["input"], options?: C): Promise<ProcessAttachmentMutation["mediaAnalyzeAttachment"]>;
        uploadMedia(variables: UploadMediaMutationVariables["input"], options?: C): Promise<UploadMediaMutation["mediaDirectUpload"]>;
    };
    companies: {
        getCompanyLedgerAccount(variables: GetCompanyLedgerAccountQueryVariables, options?: C): Promise<GetCompanyLedgerAccountQuery["company"]>;
        getWaitlistEntriesForCompany(variables: GetWaitlistEntriesForCompanyQueryVariables, options?: C): Promise<GetWaitlistEntriesForCompanyQuery["company"]>;
    };
    courses: {
        createAssessmentQuestion(variables: CreateAssessmentQuestionMutationVariables["input"], options?: C): Promise<CreateAssessmentQuestionMutation["createAssessmentQuestion"]>;
        createChapter(variables: CreateChapterMutationVariables["input"], options?: C): Promise<CreateChapterMutation["createChapter"]>;
        createCourse(variables: CreateCourseMutationVariables["input"], options?: C): Promise<CreateCourseMutation["createCourse"]>;
        createLesson(variables: CreateLessonMutationVariables["input"], options?: C): Promise<CreateLessonMutation["createLesson"]>;
        deleteAssessmentQuestionImage(variables: DeleteAssessmentQuestionImageMutationVariables["input"], options?: C): Promise<DeleteAssessmentQuestionImageMutation["deleteAssessmentQuestionImage"]>;
        deleteChapter(variables: DeleteChapterMutationVariables["input"], options?: C): Promise<DeleteChapterMutation["deleteChapter"]>;
        deleteLessonAttachment(variables: DeleteLessonAttachmentMutationVariables["input"], options?: C): Promise<DeleteLessonAttachmentMutation["deleteLessonAttachment"]>;
        deleteLesson(variables: DeleteLessonMutationVariables["input"], options?: C): Promise<DeleteLessonMutation["deleteLesson"]>;
        getCourse(variables: GetCourseQueryVariables, options?: C): Promise<GetCourseQuery["course"]>;
        getLesson(variables: GetLessonQueryVariables, options?: C): Promise<GetLessonQuery["course"]>;
        getUserLessonInteractions(variables: GetUserLessonInteractionsQueryVariables, options?: C): Promise<GetUserLessonInteractionsQuery["course"]>;
        listCoursesForCompany(variables: ListCoursesForCompanyQueryVariables, options?: C): Promise<ListCoursesForCompanyQuery["company"]>;
        listCoursesForExperience(variables: ListCoursesForExperienceQueryVariables, options?: C): Promise<ListCoursesForExperienceQuery["publicExperience"]>;
        markLessonAsCompleted(variables: MarkLessonAsCompletedMutationVariables["input"], options?: C): Promise<MarkLessonAsCompletedMutation["markLessonAsCompleted"]>;
        moveCourse(variables: MoveCourseMutationVariables["input"], options?: C): Promise<MoveCourseMutation["moveCourse"]>;
        updateChapterOrder(variables: UpdateChapterOrderMutationVariables["input"], options?: C): Promise<UpdateChapterOrderMutation["updateChapterOrder"]>;
        updateChapter(variables: UpdateChapterMutationVariables["input"], options?: C): Promise<UpdateChapterMutation["updateChapter"]>;
        updateLessonOrder(variables: UpdateLessonOrderMutationVariables["input"], options?: C): Promise<UpdateLessonOrderMutation["updateLessonOrder"]>;
        updateLesson(variables: UpdateLessonMutationVariables["input"], options?: C): Promise<UpdateLessonMutation["updateLesson"]>;
    };
    experiences: {
        getExperience(variables: GetExperienceQueryVariables, options?: C): Promise<GetExperienceQuery["experience"]>;
        listAccessPassesForExperience(variables: ListAccessPassesForExperienceQueryVariables, options?: C): Promise<ListAccessPassesForExperienceQuery["experience"]>;
        listExperiences(variables: ListExperiencesQueryVariables, options?: C): Promise<ListExperiencesQuery["company"]>;
        listUsersForExperience(variables: ListUsersForExperienceQueryVariables, options?: C): Promise<ListUsersForExperienceQuery["publicExperience"]>;
    };
    forums: {
        createForumPost(variables: CreateForumPostMutationVariables["input"], options?: C): Promise<CreateForumPostMutation["createForumPost"]>;
        findOrCreateForum(variables: FindOrCreateForumMutationVariables["input"], options?: C): Promise<FindOrCreateForumMutation["createForum"]>;
        listForumPostsFromForum(variables: ListForumPostsFromForumQueryVariables, options?: C): Promise<ListForumPostsFromForumQuery["feedPosts"]>;
    };
    messages: {
        findOrCreateChat(variables: FindOrCreateChatMutationVariables["input"], options?: C): Promise<FindOrCreateChatMutation["createChat"]>;
        listDirectMessageConversations(variables?: ListDirectMessageConversationsQueryVariables, options?: C): Promise<ListDirectMessageConversationsQuery["myDmsChannelsV2"]>;
        listMessagesFromChat(variables?: ListMessagesFromChatQueryVariables, options?: C): Promise<ListMessagesFromChatQuery["feedPosts"]>;
        sendDirectMessageToUser(variables: SendDirectMessageToUserMutationVariables, options?: C): Promise<SendDirectMessageToUserMutation["sendMessage"]>;
        sendMessageToChat(variables: SendMessageToChatMutationVariables, options?: C): Promise<SendMessageToChatMutation["sendMessage"]>;
    };
    notifications: {
        sendPushNotification(variables: SendPushNotificationMutationVariables["input"], options?: C): Promise<SendPushNotificationMutation["sendNotification"]>;
    };
    payments: {
        chargeUser(variables: ChargeUserMutationVariables["input"], options?: C): Promise<ChargeUserMutation["chargeUser"]>;
        createCheckoutSession(variables: CreateCheckoutSessionMutationVariables["input"], options?: C): Promise<CreateCheckoutSessionMutation["createCheckoutSession"]>;
        listReceiptsForCompany(variables: ListReceiptsForCompanyQueryVariables, options?: C): Promise<ListReceiptsForCompanyQuery["company"]>;
        payUser(variables: PayUserMutationVariables["input"], options?: C): Promise<PayUserMutation["transferFunds"]>;
    };
    users: {
        getCurrentUser(variables?: GetCurrentUserQueryVariables, options?: C): Promise<GetCurrentUserQuery["viewer"]>;
        getUserLedgerAccount(variables?: GetUserLedgerAccountQueryVariables, options?: C): Promise<GetUserLedgerAccountQuery["viewer"]>;
        getUser(variables: GetUserQueryVariables, options?: C): Promise<GetUserQuery["publicUser"]>;
    };
};
type Sdk = ReturnType<typeof getSdk>;

/** Represents an amount of money with its currency type. */
interface Money {
    /** The three-letter currency code defined in ISO 4217. */
    currencyCode: string;
    /**
     * The whole units of the amount.
     * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
     */
    units: number;
    /**
     * Number of nano (10^-9) units of the amount.
     * The value must be between -999,999,999 and +999,999,999 inclusive.
     * If `units` is positive, `nanos` must be positive or zero.
     * If `units` is zero, `nanos` can be positive, zero, or negative.
     * If `units` is negative, `nanos` must be negative or zero.
     * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
     */
    nanos: number;
}

interface FileAttachment {
    originalUrl: string;
    fileName: string;
    /** @deprecated */
    fileSize: number;
    audio?: FileAttachment_Audio | undefined;
    video?: FileAttachment_Video | undefined;
    image?: FileAttachment_Image | undefined;
    genericFile?: FileAttachment_GenericFile | undefined;
    id: string;
    signedId: string;
    analyzed: boolean;
    byteSize: number;
    contentType: string;
}
interface FileAttachment_Audio {
    durationSecs: number;
    waveformUrl: string;
    bitrate: number;
}
interface FileAttachment_Video {
    durationSecs: number;
    width: number;
    height: number;
    thumbnailUrl: string;
    aspectRatio: number;
    blurhash: string;
}
interface FileAttachment_Image {
    width: number;
    height: number;
    blurhash: string;
    aspectRatio: number;
}
interface FileAttachment_GenericFile {
}

declare const UserType: {
    readonly UNKNOWN_TYPE: "UNKNOWN_TYPE";
    readonly HUMAN: "HUMAN";
    readonly SYSTEM: "SYSTEM";
    readonly AGENT: "AGENT";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type UserType = typeof UserType[keyof typeof UserType];
declare namespace UserType {
    type UNKNOWN_TYPE = typeof UserType.UNKNOWN_TYPE;
    type HUMAN = typeof UserType.HUMAN;
    type SYSTEM = typeof UserType.SYSTEM;
    type AGENT = typeof UserType.AGENT;
    type UNRECOGNIZED = typeof UserType.UNRECOGNIZED;
}
interface User {
    id: string;
    email?: string | undefined;
    name?: string | undefined;
    username: string;
    /** @deprecated */
    profilePicUrl?: string | undefined;
    userType: UserType;
    roles: User_PlatformRole[];
    profilePicture: FileAttachment | undefined;
    banner: FileAttachment | undefined;
    createdAt: string | undefined;
}
declare const User_PlatformRole: {
    readonly UNKNOWN_ROLE: "UNKNOWN_ROLE";
    readonly SUPER_ADMIN: "SUPER_ADMIN";
    readonly ADMIN: "ADMIN";
    readonly TRUST_AND_SAFETY_MANAGER: "TRUST_AND_SAFETY_MANAGER";
    readonly MANAGER: "MANAGER";
    readonly SUPPORT: "SUPPORT";
    readonly TESTER: "TESTER";
    readonly SEO_MANAGER: "SEO_MANAGER";
    readonly TEMPLATE_USER: "TEMPLATE_USER";
    readonly MARKETPLACE_MANAGER: "MARKETPLACE_MANAGER";
    readonly DEVELOPER: "DEVELOPER";
    readonly FINANCE_MANAGER: "FINANCE_MANAGER";
    readonly RESOLUTION_CENTER_MANAGER: "RESOLUTION_CENTER_MANAGER";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type User_PlatformRole = typeof User_PlatformRole[keyof typeof User_PlatformRole];
declare namespace User_PlatformRole {
    type UNKNOWN_ROLE = typeof User_PlatformRole.UNKNOWN_ROLE;
    type SUPER_ADMIN = typeof User_PlatformRole.SUPER_ADMIN;
    type ADMIN = typeof User_PlatformRole.ADMIN;
    type TRUST_AND_SAFETY_MANAGER = typeof User_PlatformRole.TRUST_AND_SAFETY_MANAGER;
    type MANAGER = typeof User_PlatformRole.MANAGER;
    type SUPPORT = typeof User_PlatformRole.SUPPORT;
    type TESTER = typeof User_PlatformRole.TESTER;
    type SEO_MANAGER = typeof User_PlatformRole.SEO_MANAGER;
    type TEMPLATE_USER = typeof User_PlatformRole.TEMPLATE_USER;
    type MARKETPLACE_MANAGER = typeof User_PlatformRole.MARKETPLACE_MANAGER;
    type DEVELOPER = typeof User_PlatformRole.DEVELOPER;
    type FINANCE_MANAGER = typeof User_PlatformRole.FINANCE_MANAGER;
    type RESOLUTION_CENTER_MANAGER = typeof User_PlatformRole.RESOLUTION_CENTER_MANAGER;
    type UNRECOGNIZED = typeof User_PlatformRole.UNRECOGNIZED;
}
interface UserStat {
    userId: string;
    moneyEarned24Hours: Money | undefined;
    moneyEarned30Days: Money | undefined;
    moneyEarned7Days: Money | undefined;
    moneyEarnedLifetime: Money | undefined;
}
interface UserPresence {
    userId: string;
    lastSeenAt?: string | undefined;
}

declare const AppViewType: {
    readonly APP_VIEW_TYPE_UNKNOWN: "APP_VIEW_TYPE_UNKNOWN";
    readonly APP_VIEW_TYPE_HUB: "APP_VIEW_TYPE_HUB";
    readonly APP_VIEW_TYPE_DASH: "APP_VIEW_TYPE_DASH";
    readonly APP_VIEW_TYPE_ANALYTICS: "APP_VIEW_TYPE_ANALYTICS";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type AppViewType = typeof AppViewType[keyof typeof AppViewType];
declare namespace AppViewType {
    type APP_VIEW_TYPE_UNKNOWN = typeof AppViewType.APP_VIEW_TYPE_UNKNOWN;
    type APP_VIEW_TYPE_HUB = typeof AppViewType.APP_VIEW_TYPE_HUB;
    type APP_VIEW_TYPE_DASH = typeof AppViewType.APP_VIEW_TYPE_DASH;
    type APP_VIEW_TYPE_ANALYTICS = typeof AppViewType.APP_VIEW_TYPE_ANALYTICS;
    type UNRECOGNIZED = typeof AppViewType.UNRECOGNIZED;
}
declare const AccessType: {
    readonly UNKNOWN_ACCESS_TYPE: "UNKNOWN_ACCESS_TYPE";
    readonly NO_ACCESS: "NO_ACCESS";
    readonly CUSTOMER: "CUSTOMER";
    readonly ADMIN: "ADMIN";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type AccessType = typeof AccessType[keyof typeof AccessType];
declare namespace AccessType {
    type UNKNOWN_ACCESS_TYPE = typeof AccessType.UNKNOWN_ACCESS_TYPE;
    type NO_ACCESS = typeof AccessType.NO_ACCESS;
    type CUSTOMER = typeof AccessType.CUSTOMER;
    type ADMIN = typeof AccessType.ADMIN;
    type UNRECOGNIZED = typeof AccessType.UNRECOGNIZED;
}
declare const Platform: {
    readonly UNKNOWN: "UNKNOWN";
    readonly WEB: "WEB";
    readonly IOS: "IOS";
    readonly ANDROID: "ANDROID";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type Platform = typeof Platform[keyof typeof Platform];
declare namespace Platform {
    type UNKNOWN = typeof Platform.UNKNOWN;
    type WEB = typeof Platform.WEB;
    type IOS = typeof Platform.IOS;
    type ANDROID = typeof Platform.ANDROID;
    type UNRECOGNIZED = typeof Platform.UNRECOGNIZED;
}
interface App {
    id: string;
    name: string;
    internalIdentifier: string;
    imageUrl: string;
    icon?: FileAttachment | undefined;
    consumerViewUrlTemplate?: string | undefined;
    adminViewUrlTemplate?: string | undefined;
    analyticsViewUrlTemplate?: string | undefined;
    discoverViewUrlTemplate?: string | undefined;
    description?: string | undefined;
    prodIosBuildId?: string | undefined;
    prodAndroidBuildId?: string | undefined;
    prodWebBuildId?: string | undefined;
    botId: string;
}
interface AppBuild {
    id: string;
    appId: string;
    checksum: string;
    platform: Platform;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    status: AppBuild_Status;
    fileUrl: string;
    reviewMessage?: string | undefined;
    supportedAppViewTypes: AppViewType[];
}
declare const AppBuild_Status: {
    readonly STATUS_UNKNOWN: "STATUS_UNKNOWN";
    readonly STATUS_DRAFT: "STATUS_DRAFT";
    readonly STATUS_PENDING: "STATUS_PENDING";
    readonly STATUS_APPROVED: "STATUS_APPROVED";
    readonly STATUS_REJECTED: "STATUS_REJECTED";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type AppBuild_Status = typeof AppBuild_Status[keyof typeof AppBuild_Status];
declare namespace AppBuild_Status {
    type STATUS_UNKNOWN = typeof AppBuild_Status.STATUS_UNKNOWN;
    type STATUS_DRAFT = typeof AppBuild_Status.STATUS_DRAFT;
    type STATUS_PENDING = typeof AppBuild_Status.STATUS_PENDING;
    type STATUS_APPROVED = typeof AppBuild_Status.STATUS_APPROVED;
    type STATUS_REJECTED = typeof AppBuild_Status.STATUS_REJECTED;
    type UNRECOGNIZED = typeof AppBuild_Status.UNRECOGNIZED;
}
interface Bot {
    id: string;
    /** @deprecated */
    hubRoute: string;
    title: string;
    imageUrl: string;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    isVerified: boolean;
    installedFirstAppAt?: string | undefined;
    whopFourFiveEnabledAt?: string | undefined;
    logo?: FileAttachment | undefined;
    bannerImage?: FileAttachment | undefined;
    route?: string | undefined;
}
interface NotificationTopic {
    id: string;
}
interface CfLocation {
    ipAddress?: string | undefined;
    city?: string | undefined;
    country?: string | undefined;
    continent?: string | undefined;
    longitude?: number | undefined;
    latitude?: number | undefined;
    region?: string | undefined;
    regionCode?: string | undefined;
    metroCode?: string | undefined;
    postalCode?: string | undefined;
    timezone?: string | undefined;
}
interface AccessPass {
    id: string;
    route: string;
    /** @deprecated */
    name: string;
    headline: string;
    imageUrl: string;
    title: string;
    botId: string;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    discardedAt?: string | undefined;
    shortenedDescription?: string | undefined;
    visibility: AccessPass_Visibility;
    discoverableAt?: string | undefined;
    logo?: FileAttachment | undefined;
    bannerImage?: FileAttachment | undefined;
    accessPassType: AccessPass_AccessPassType;
    activeMembersCount: number;
}
declare const AccessPass_Visibility: {
    readonly VISIBILITY_UNKNOWN: "VISIBILITY_UNKNOWN";
    readonly VISIBLE: "VISIBLE";
    readonly HIDDEN: "HIDDEN";
    readonly ARCHIVED: "ARCHIVED";
    readonly QUICK_LINK: "QUICK_LINK";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type AccessPass_Visibility = typeof AccessPass_Visibility[keyof typeof AccessPass_Visibility];
declare namespace AccessPass_Visibility {
    type VISIBILITY_UNKNOWN = typeof AccessPass_Visibility.VISIBILITY_UNKNOWN;
    type VISIBLE = typeof AccessPass_Visibility.VISIBLE;
    type HIDDEN = typeof AccessPass_Visibility.HIDDEN;
    type ARCHIVED = typeof AccessPass_Visibility.ARCHIVED;
    type QUICK_LINK = typeof AccessPass_Visibility.QUICK_LINK;
    type UNRECOGNIZED = typeof AccessPass_Visibility.UNRECOGNIZED;
}
declare const AccessPass_AccessPassType: {
    readonly ACCESS_PASS_TYPE_UNKNOWN: "ACCESS_PASS_TYPE_UNKNOWN";
    readonly REGULAR: "REGULAR";
    readonly APP: "APP";
    readonly EXPERIENCE_UPSELL: "EXPERIENCE_UPSELL";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type AccessPass_AccessPassType = typeof AccessPass_AccessPassType[keyof typeof AccessPass_AccessPassType];
declare namespace AccessPass_AccessPassType {
    type ACCESS_PASS_TYPE_UNKNOWN = typeof AccessPass_AccessPassType.ACCESS_PASS_TYPE_UNKNOWN;
    type REGULAR = typeof AccessPass_AccessPassType.REGULAR;
    type APP = typeof AccessPass_AccessPassType.APP;
    type EXPERIENCE_UPSELL = typeof AccessPass_AccessPassType.EXPERIENCE_UPSELL;
    type UNRECOGNIZED = typeof AccessPass_AccessPassType.UNRECOGNIZED;
}
interface Plan {
    id: string;
    baseCurrency: string;
    renewalPrice: Money | undefined;
    initialPrice: Money | undefined;
    initialPriceDue: Money | undefined;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    billingPeriod?: number | undefined;
    trialPeriodDays?: number | undefined;
    expirationDays?: number | undefined;
    unlimitedStock: boolean;
    paymentLinkDescription?: string | undefined;
    releaseMethod: Plan_ReleaseMethod;
    stock?: number | undefined;
    visibility: Plan_Visibility;
    planType: Plan_PlanType;
}
declare const Plan_Visibility: {
    readonly VISIBILITY_UNKNOWN: "VISIBILITY_UNKNOWN";
    readonly VISIBLE: "VISIBLE";
    readonly HIDDEN: "HIDDEN";
    readonly ARCHIVED: "ARCHIVED";
    readonly QUICK_LINK: "QUICK_LINK";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type Plan_Visibility = typeof Plan_Visibility[keyof typeof Plan_Visibility];
declare namespace Plan_Visibility {
    type VISIBILITY_UNKNOWN = typeof Plan_Visibility.VISIBILITY_UNKNOWN;
    type VISIBLE = typeof Plan_Visibility.VISIBLE;
    type HIDDEN = typeof Plan_Visibility.HIDDEN;
    type ARCHIVED = typeof Plan_Visibility.ARCHIVED;
    type QUICK_LINK = typeof Plan_Visibility.QUICK_LINK;
    type UNRECOGNIZED = typeof Plan_Visibility.UNRECOGNIZED;
}
declare const Plan_ReleaseMethod: {
    readonly RELEASE_METHOD_UNKNOWN: "RELEASE_METHOD_UNKNOWN";
    readonly BUY_NOW: "BUY_NOW";
    readonly WAITLIST: "WAITLIST";
    readonly RAFFLE: "RAFFLE";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type Plan_ReleaseMethod = typeof Plan_ReleaseMethod[keyof typeof Plan_ReleaseMethod];
declare namespace Plan_ReleaseMethod {
    type RELEASE_METHOD_UNKNOWN = typeof Plan_ReleaseMethod.RELEASE_METHOD_UNKNOWN;
    type BUY_NOW = typeof Plan_ReleaseMethod.BUY_NOW;
    type WAITLIST = typeof Plan_ReleaseMethod.WAITLIST;
    type RAFFLE = typeof Plan_ReleaseMethod.RAFFLE;
    type UNRECOGNIZED = typeof Plan_ReleaseMethod.UNRECOGNIZED;
}
declare const Plan_PlanType: {
    readonly PLAN_TYPE_UNKNOWN: "PLAN_TYPE_UNKNOWN";
    readonly RENEWAL: "RENEWAL";
    readonly ONE_TIME: "ONE_TIME";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type Plan_PlanType = typeof Plan_PlanType[keyof typeof Plan_PlanType];
declare namespace Plan_PlanType {
    type PLAN_TYPE_UNKNOWN = typeof Plan_PlanType.PLAN_TYPE_UNKNOWN;
    type RENEWAL = typeof Plan_PlanType.RENEWAL;
    type ONE_TIME = typeof Plan_PlanType.ONE_TIME;
    type UNRECOGNIZED = typeof Plan_PlanType.UNRECOGNIZED;
}
interface Entry {
    id: string;
    status: Entry_EntryStatus;
    userId: string;
    botId: string;
    planId: string;
    accessPassId: string;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    discardedAt?: string | undefined;
}
declare const Entry_EntryStatus: {
    readonly ENTRY_STATUS_UNKNOWN: "ENTRY_STATUS_UNKNOWN";
    readonly PENDING: "PENDING";
    readonly APPROVED: "APPROVED";
    readonly DENIED: "DENIED";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type Entry_EntryStatus = typeof Entry_EntryStatus[keyof typeof Entry_EntryStatus];
declare namespace Entry_EntryStatus {
    type ENTRY_STATUS_UNKNOWN = typeof Entry_EntryStatus.ENTRY_STATUS_UNKNOWN;
    type PENDING = typeof Entry_EntryStatus.PENDING;
    type APPROVED = typeof Entry_EntryStatus.APPROVED;
    type DENIED = typeof Entry_EntryStatus.DENIED;
    type UNRECOGNIZED = typeof Entry_EntryStatus.UNRECOGNIZED;
}
interface AccessPassMember {
    id: string;
    accessPassId: string;
    userId: string;
    botId: string;
    accessLevel: AccessType;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    /** @deprecated */
    orderOld?: number | undefined;
    order?: number | undefined;
}
interface Member {
    id: string;
    userId: string;
    botId: string;
    accessLevel: AccessType;
    order?: number | undefined;
    createdAt: string | undefined;
    updatedAt: string | undefined;
}
interface AccessPassExperience {
    id: string;
    accessPassId: string;
    experienceId: string;
    botId: string;
    /** @deprecated */
    isDeleted: boolean;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    discardedAt?: string | undefined;
    upsellType?: AccessPassExperience_UpsellType | undefined;
    upsellPlan?: Plan | undefined;
    order: number;
    sectionId?: string | undefined;
}
declare const AccessPassExperience_UpsellType: {
    readonly UPSELL_TYPE_UNKNOWN: "UPSELL_TYPE_UNKNOWN";
    readonly BEFORE_CHECKOUT: "BEFORE_CHECKOUT";
    readonly AFTER_CHECKOUT: "AFTER_CHECKOUT";
    readonly ONLY_IN_WHOP: "ONLY_IN_WHOP";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type AccessPassExperience_UpsellType = typeof AccessPassExperience_UpsellType[keyof typeof AccessPassExperience_UpsellType];
declare namespace AccessPassExperience_UpsellType {
    type UPSELL_TYPE_UNKNOWN = typeof AccessPassExperience_UpsellType.UPSELL_TYPE_UNKNOWN;
    type BEFORE_CHECKOUT = typeof AccessPassExperience_UpsellType.BEFORE_CHECKOUT;
    type AFTER_CHECKOUT = typeof AccessPassExperience_UpsellType.AFTER_CHECKOUT;
    type ONLY_IN_WHOP = typeof AccessPassExperience_UpsellType.ONLY_IN_WHOP;
    type UNRECOGNIZED = typeof AccessPassExperience_UpsellType.UNRECOGNIZED;
}
interface AccessPassExperienceSection {
    id: string;
    accessPassId: string;
    botId: string;
    title: string;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    discardedAt?: string | undefined;
    order?: number | undefined;
}
interface BotExperienceSection {
    id: string;
    botId: string;
    title: string;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    discardedAt?: string | undefined;
    order?: number | undefined;
}
interface Purchase {
    amount: number;
    currencyCode: string;
    userName: string;
    product: AccessPass | undefined;
    createdAt: number;
    id: string;
    releaseMethod: Purchase_ReleaseMethod;
    formattedAmount: string;
}
declare const Purchase_ReleaseMethod: {
    readonly UNKNOWN: "UNKNOWN";
    readonly BUY_NOW: "BUY_NOW";
    readonly WAITLIST: "WAITLIST";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type Purchase_ReleaseMethod = typeof Purchase_ReleaseMethod[keyof typeof Purchase_ReleaseMethod];
declare namespace Purchase_ReleaseMethod {
    type UNKNOWN = typeof Purchase_ReleaseMethod.UNKNOWN;
    type BUY_NOW = typeof Purchase_ReleaseMethod.BUY_NOW;
    type WAITLIST = typeof Purchase_ReleaseMethod.WAITLIST;
    type UNRECOGNIZED = typeof Purchase_ReleaseMethod.UNRECOGNIZED;
}
interface MarketplaceStats {
    totalGmvUsd: number;
    usersCount: number;
}
interface ConnectedId {
    type: ConnectedId_Type;
    id: string;
    deviceId: string;
}
declare const ConnectedId_Type: {
    readonly UNKNOWN: "UNKNOWN";
    readonly ANONYMOUS: "ANONYMOUS";
    readonly USER: "USER";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type ConnectedId_Type = typeof ConnectedId_Type[keyof typeof ConnectedId_Type];
declare namespace ConnectedId_Type {
    type UNKNOWN = typeof ConnectedId_Type.UNKNOWN;
    type ANONYMOUS = typeof ConnectedId_Type.ANONYMOUS;
    type USER = typeof ConnectedId_Type.USER;
    type UNRECOGNIZED = typeof ConnectedId_Type.UNRECOGNIZED;
}
interface Channel {
    type: Channel_Type;
    id: string;
}
declare const Channel_Type: {
    readonly UNKNOWN: "UNKNOWN";
    /** EXPERIENCE - / A channel to which all users of an experience are subscribed, only when vieweing that experience in the UI. The ID is the experience.tag (exp_XXXXX) */
    readonly EXPERIENCE: "EXPERIENCE";
    /** NOTIFICATIONS - / Not used right now. */
    readonly NOTIFICATIONS: "NOTIFICATIONS";
    /** DMS - / A channel to which all users in a dms_feed are subscribed. Id is the dms_feed.external_id (feed_XXXXX) */
    readonly DMS: "DMS";
    /** USER - / A channel to which a single user is subscribed. (Id is the user's id) */
    readonly USER: "USER";
    /** EVERYONE - / A single channel to which all connections are subscribed. (Id is empty) */
    readonly EVERYONE: "EVERYONE";
    /** AUTHENTICATED - / A single channel to which all authenticated users are subscribed. (Id is empty) */
    readonly AUTHENTICATED: "AUTHENTICATED";
    /** ANONYMOUS - / A channel that is created for every anonymous connection. The id is 128bits of random data. */
    readonly ANONYMOUS: "ANONYMOUS";
    /** PUBLIC - / A channel type that can be connected to by anyone without authentication. Allows anything after the `public_` prefix. */
    readonly PUBLIC: "PUBLIC";
    /** ACCESS_PASS - / A channel to which all users of an access pass are subscribed. The ID is the access_pass.tag (pass_XXXX or prod_XXXX) */
    readonly ACCESS_PASS: "ACCESS_PASS";
    /** APP - / A channel that is used by an app to broadcast data to all of its websocket connections. It may look like: app_XXX or app_XXX_exp_XXX or app_XXX_custom_suffix */
    readonly APP: "APP";
    /** BOT - / A channel to which all members with valid access to a bot are subscribed. The ID is the bot.id (biz_XXX) */
    readonly BOT: "BOT";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type Channel_Type = typeof Channel_Type[keyof typeof Channel_Type];
declare namespace Channel_Type {
    type UNKNOWN = typeof Channel_Type.UNKNOWN;
    type EXPERIENCE = typeof Channel_Type.EXPERIENCE;
    type NOTIFICATIONS = typeof Channel_Type.NOTIFICATIONS;
    type DMS = typeof Channel_Type.DMS;
    type USER = typeof Channel_Type.USER;
    type EVERYONE = typeof Channel_Type.EVERYONE;
    type AUTHENTICATED = typeof Channel_Type.AUTHENTICATED;
    type ANONYMOUS = typeof Channel_Type.ANONYMOUS;
    type PUBLIC = typeof Channel_Type.PUBLIC;
    type ACCESS_PASS = typeof Channel_Type.ACCESS_PASS;
    type APP = typeof Channel_Type.APP;
    type BOT = typeof Channel_Type.BOT;
    type UNRECOGNIZED = typeof Channel_Type.UNRECOGNIZED;
}
interface ChannelSubscriptionState {
    channel: Channel | undefined;
    isSubscribed: boolean;
    wasAlreadySubscribed: boolean;
    disconnectionReason?: ChannelSubscriptionState_DisconnectionReason | undefined;
}
declare const ChannelSubscriptionState_DisconnectionReason: {
    readonly UNKNOWN: "UNKNOWN";
    readonly NO_ACCESS: "NO_ACCESS";
    readonly REQUESTED_DISCONNECT: "REQUESTED_DISCONNECT";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type ChannelSubscriptionState_DisconnectionReason = typeof ChannelSubscriptionState_DisconnectionReason[keyof typeof ChannelSubscriptionState_DisconnectionReason];
declare namespace ChannelSubscriptionState_DisconnectionReason {
    type UNKNOWN = typeof ChannelSubscriptionState_DisconnectionReason.UNKNOWN;
    type NO_ACCESS = typeof ChannelSubscriptionState_DisconnectionReason.NO_ACCESS;
    type REQUESTED_DISCONNECT = typeof ChannelSubscriptionState_DisconnectionReason.REQUESTED_DISCONNECT;
    type UNRECOGNIZED = typeof ChannelSubscriptionState_DisconnectionReason.UNRECOGNIZED;
}
interface Reconnect {
}
interface ReloadClient {
    versionId: string;
    force: boolean;
}
interface BroadcastRequest {
    channel: Channel | undefined;
    typingIndicator?: TypingIndicator | undefined;
    markAsRead?: MarkAsRead | undefined;
    position?: Position | undefined;
}
interface Position {
    x: number;
    y: number;
    type: Position_Type;
    url: string;
    message: string;
}
declare const Position_Type: {
    readonly UNKNOWN: "UNKNOWN";
    readonly MOUSE: "MOUSE";
    readonly PLAYER: "PLAYER";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type Position_Type = typeof Position_Type[keyof typeof Position_Type];
declare namespace Position_Type {
    type UNKNOWN = typeof Position_Type.UNKNOWN;
    type MOUSE = typeof Position_Type.MOUSE;
    type PLAYER = typeof Position_Type.PLAYER;
    type UNRECOGNIZED = typeof Position_Type.UNRECOGNIZED;
}
interface TypingIndicator {
    expireAfter: string | undefined;
}
interface MarkAsRead {
    experienceId?: string | undefined;
    isGlobal: boolean;
    timestamp: string | undefined;
}
interface BroadcastResponse {
    channel: Channel | undefined;
    fromUserId: string;
    serverForwardedAt: string | undefined;
    typingIndicator?: TypingIndicator | undefined;
    markAsRead?: MarkAsRead | undefined;
    position?: Position | undefined;
}
interface DiscoveryAccessPassLiveData {
    accessPassId: string;
    last24HoursGmv?: Money | undefined;
    last24HoursAffiliateEarnings?: Money | undefined;
    last24HoursNewUsers?: number | undefined;
    last24HoursAverageTimePerUser?: string | undefined;
    globalWhopRanking?: number | undefined;
    totalPublishedReviewsCount?: number | undefined;
    lastReview?: AccessPassReview | undefined;
    last7DaysPublishedReviewsCount?: number | undefined;
    activeUsersCount?: number | undefined;
    last30DaysNewUsers?: number | undefined;
    accessPassActivityItem?: AccessPassActivityItem | undefined;
}
interface AccessPassActivityItem {
    id: string;
    createdAt: string | undefined;
    eventType: string;
    user?: User | undefined;
}
interface AccessPassReview {
    id: string;
    createdAt: string | undefined;
    publishedAt: string | undefined;
}
interface FeedContentItem {
    id: string;
    eventType: string;
    metadata: {
        [key: string]: any;
    } | undefined;
    restPath: string;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    appId: string;
    botId: string;
    experienceId: string;
    externalId: string;
    parentExternalId: string;
    userId: string;
    attachments: FileAttachment[];
    gifs: FeedContentItem_GiphyGif[];
}
interface FeedContentItem_GiphyGif {
    title: string;
    url: string;
    originalUrl: string;
    previewUrl: string;
    width: number;
    height: number;
    slug: string;
}
interface UserReferralMarketRates {
    previousRates?: UserReferralMarketRate | undefined;
    currentRates?: UserReferralMarketRate | undefined;
}
interface UserReferralMarketRate {
    percentOfPlatformSpend?: number | undefined;
    percentOfSellerPayment?: number | undefined;
    percentOfContentRewardsCampaignMaker?: number | undefined;
    percentOfContentRewardsEarner?: number | undefined;
}
interface GoFetchExperienceList {
    accessPassId: string;
}
interface GoFetchUserExperiences {
    experienceId: string;
}
interface BusinessActivityEvent {
    eventType: BusinessActivityEvent_EventType;
    user: User | undefined;
    accessPass: AccessPass | undefined;
    description: string;
    createdAt: string | undefined;
}
declare const BusinessActivityEvent_EventType: {
    readonly UNKNOWN: "UNKNOWN";
    readonly MEMBER_JOINED: "MEMBER_JOINED";
    readonly NEW_PAYMENT: "NEW_PAYMENT";
    readonly NEW_DISPUTE: "NEW_DISPUTE";
    readonly MEMBER_CANCELED: "MEMBER_CANCELED";
    readonly MEMBER_CHURNED: "MEMBER_CHURNED";
    readonly NEW_MARKETPLACE_SALE: "NEW_MARKETPLACE_SALE";
    readonly NEW_RESOLUTION_CENTER_CASE: "NEW_RESOLUTION_CENTER_CASE";
    readonly NEW_REVIEW: "NEW_REVIEW";
    readonly TEAM_MEMBER_JOINED: "TEAM_MEMBER_JOINED";
    readonly BANNED_USER: "BANNED_USER";
    readonly FAILED_PAYMENT: "FAILED_PAYMENT";
    readonly PAYOUT_REQUESTED: "PAYOUT_REQUESTED";
    readonly PAYOUT_COMPLETED: "PAYOUT_COMPLETED";
    readonly PAYOUT_FAILED: "PAYOUT_FAILED";
    readonly COMPETITION_ALERT: "COMPETITION_ALERT";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type BusinessActivityEvent_EventType = typeof BusinessActivityEvent_EventType[keyof typeof BusinessActivityEvent_EventType];
declare namespace BusinessActivityEvent_EventType {
    type UNKNOWN = typeof BusinessActivityEvent_EventType.UNKNOWN;
    type MEMBER_JOINED = typeof BusinessActivityEvent_EventType.MEMBER_JOINED;
    type NEW_PAYMENT = typeof BusinessActivityEvent_EventType.NEW_PAYMENT;
    type NEW_DISPUTE = typeof BusinessActivityEvent_EventType.NEW_DISPUTE;
    type MEMBER_CANCELED = typeof BusinessActivityEvent_EventType.MEMBER_CANCELED;
    type MEMBER_CHURNED = typeof BusinessActivityEvent_EventType.MEMBER_CHURNED;
    type NEW_MARKETPLACE_SALE = typeof BusinessActivityEvent_EventType.NEW_MARKETPLACE_SALE;
    type NEW_RESOLUTION_CENTER_CASE = typeof BusinessActivityEvent_EventType.NEW_RESOLUTION_CENTER_CASE;
    type NEW_REVIEW = typeof BusinessActivityEvent_EventType.NEW_REVIEW;
    type TEAM_MEMBER_JOINED = typeof BusinessActivityEvent_EventType.TEAM_MEMBER_JOINED;
    type BANNED_USER = typeof BusinessActivityEvent_EventType.BANNED_USER;
    type FAILED_PAYMENT = typeof BusinessActivityEvent_EventType.FAILED_PAYMENT;
    type PAYOUT_REQUESTED = typeof BusinessActivityEvent_EventType.PAYOUT_REQUESTED;
    type PAYOUT_COMPLETED = typeof BusinessActivityEvent_EventType.PAYOUT_COMPLETED;
    type PAYOUT_FAILED = typeof BusinessActivityEvent_EventType.PAYOUT_FAILED;
    type COMPETITION_ALERT = typeof BusinessActivityEvent_EventType.COMPETITION_ALERT;
    type UNRECOGNIZED = typeof BusinessActivityEvent_EventType.UNRECOGNIZED;
}

interface FeedEntity {
    dmsPost?: FeedDmsPost | undefined;
    dmsFeed?: FeedDmsFeed | undefined;
    dmsFeedMember?: FeedDmsFeedMember | undefined;
    reaction?: FeedReaction | undefined;
    user?: FeedUser | undefined;
    chatFeed?: FeedChatFeed | undefined;
    mutedUser?: FeedMutedUser | undefined;
    forumFeed?: FeedForumFeed | undefined;
    forumPost?: FeedForumPost | undefined;
    postReactionCountUpdate?: FeedPostReactionCountUpdate | undefined;
    livestreamFeed?: FeedLivestreamFeed | undefined;
    dmsUnreadBadgeUpdate?: FeedDmsUnreadBadgeUpdate | undefined;
}
interface SendFeedEntityToUserRequest {
    userId: string;
    feedEntity: FeedEntity | undefined;
    userIds: string[];
}
interface SendFeedEntityToUserResponse {
    sent: boolean;
}
interface FeedSyncError {
    message: string;
}
interface FeedDmsPost {
    /** Entity Base */
    entityType: string;
    entityId: string;
    createdAt: number;
    updatedAt: number;
    Deleted: boolean;
    syncError: FeedSyncError | undefined;
    isSynced: boolean;
    sortKey: string;
    /** Custom Fields */
    feedId: string;
    feedType: string;
    userId: string;
    parentId: string;
    isEdited: boolean;
    title: string;
    content: string;
    richContent: string;
    childrenCount: number;
    /** @deprecated */
    reactionCounts: FeedDmsPost_ReactionCounts | undefined;
    /**
     * use files instead
     *
     * @deprecated
     */
    attachments: FeedDmsPost_PostAttachment[];
    gifs: FeedDmsPost_GiphyGif[];
    replyingToPostId: string;
    links: FeedDmsPost_LinkEmbed[];
    isPinned: boolean;
    everyoneMentioned: boolean;
    mentionedUserIds: string[];
    viewCount: number;
    postReactionCounts: PostReactionCount[];
    isPosterAdmin: boolean;
    messageType: FeedDmsPost_MessageType;
    embed?: PostEmbed | undefined;
    user: User | undefined;
    files: FileAttachment[];
    experienceId?: string | undefined;
    poll?: Poll | undefined;
    markdownContent: string;
    replyingToPost?: FeedDmsPost | undefined;
}
declare const FeedDmsPost_MessageType: {
    readonly UNKNOWN_TYPE: "UNKNOWN_TYPE";
    readonly REGULAR: "REGULAR";
    readonly SYSTEM: "SYSTEM";
    readonly AUTOMATED: "AUTOMATED";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type FeedDmsPost_MessageType = typeof FeedDmsPost_MessageType[keyof typeof FeedDmsPost_MessageType];
declare namespace FeedDmsPost_MessageType {
    type UNKNOWN_TYPE = typeof FeedDmsPost_MessageType.UNKNOWN_TYPE;
    type REGULAR = typeof FeedDmsPost_MessageType.REGULAR;
    type SYSTEM = typeof FeedDmsPost_MessageType.SYSTEM;
    type AUTOMATED = typeof FeedDmsPost_MessageType.AUTOMATED;
    type UNRECOGNIZED = typeof FeedDmsPost_MessageType.UNRECOGNIZED;
}
interface FeedDmsPost_ImageAttachment {
    type: string;
    fileUrl: string;
    fileCategory: string;
    fileName: string;
    /** @deprecated */
    fileSize: number;
    blurDataUrl: string;
    aspectRatio: number;
    byteSize: number;
}
interface FeedDmsPost_DocumentAttachment {
    type: string;
    fileUrl: string;
    fileCategory: string;
    fileName: string;
    /** @deprecated */
    fileSize: number;
    byteSize: number;
}
interface FeedDmsPost_VideoAttachment {
    type: string;
    fileUrl: string;
    fileCategory: string;
    fileName: string;
    /** @deprecated */
    fileSize: number;
    blurDataUrl: string;
    aspectRatio: number;
    thumbnailUrl: string;
    height: number;
    width: number;
    byteSize: number;
}
interface FeedDmsPost_GiphyGif {
    title: string;
    url: string;
    originalUrl: string;
    previewUrl: string;
    width: number;
    height: number;
    slug: string;
}
interface FeedDmsPost_PostAttachment {
    image?: FeedDmsPost_ImageAttachment | undefined;
    document?: FeedDmsPost_DocumentAttachment | undefined;
    video?: FeedDmsPost_VideoAttachment | undefined;
}
interface FeedDmsPost_ReactionCount {
    score: number;
    count: number;
}
interface FeedDmsPost_ReactionCounts {
    counts: {
        [key: string]: FeedDmsPost_ReactionCount;
    };
}
interface FeedDmsPost_ReactionCounts_CountsEntry {
    key: string;
    value: FeedDmsPost_ReactionCount | undefined;
}
interface FeedDmsPost_LinkEmbed {
    url: string;
    title: string;
    description: string;
    image: string;
    favicon: string;
    processing: boolean;
}
interface FeedDmsFeed {
    /** Entity Base */
    entityType: string;
    entityId: string;
    createdAt: number;
    updatedAt: number;
    Deleted: boolean;
    syncError: FeedSyncError | undefined;
    isSynced: boolean;
    /** Feed Fields */
    rootPostCount: number;
    postCount: number;
    collectionIdentifier: string;
    feedType: string;
    sortKey: string;
    /** Custom Fields */
    customName: string;
}
interface FeedChatFeed {
    /** Entity Base */
    entityType: string;
    entityId: string;
    createdAt: number;
    updatedAt: number;
    Deleted: boolean;
    syncError: FeedSyncError | undefined;
    isSynced: boolean;
    /** Feed Fields */
    rootPostCount: number;
    postCount: number;
    collectionIdentifier: string;
    feedType: string;
    sortKey: string;
    /** Custom Fields */
    experienceId: string;
    banUrls: boolean;
    whoCanReact: FeedChatFeed_MemberPermissionType;
    whoCanPost: FeedChatFeed_MemberPermissionType;
    requiredProductIdsToWrite: string[];
    banMedia: boolean;
    userPostsCooldownSeconds: number;
    banUnverifiedUsers: boolean;
}
declare const FeedChatFeed_MemberPermissionType: {
    readonly UNKNOWN: "UNKNOWN";
    readonly NONE: "NONE";
    readonly EVERYONE: "EVERYONE";
    readonly MEMBERS: "MEMBERS";
    readonly ADMINS: "ADMINS";
    readonly PRODUCT_OWNERS: "PRODUCT_OWNERS";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type FeedChatFeed_MemberPermissionType = typeof FeedChatFeed_MemberPermissionType[keyof typeof FeedChatFeed_MemberPermissionType];
declare namespace FeedChatFeed_MemberPermissionType {
    type UNKNOWN = typeof FeedChatFeed_MemberPermissionType.UNKNOWN;
    type NONE = typeof FeedChatFeed_MemberPermissionType.NONE;
    type EVERYONE = typeof FeedChatFeed_MemberPermissionType.EVERYONE;
    type MEMBERS = typeof FeedChatFeed_MemberPermissionType.MEMBERS;
    type ADMINS = typeof FeedChatFeed_MemberPermissionType.ADMINS;
    type PRODUCT_OWNERS = typeof FeedChatFeed_MemberPermissionType.PRODUCT_OWNERS;
    type UNRECOGNIZED = typeof FeedChatFeed_MemberPermissionType.UNRECOGNIZED;
}
interface FeedLivestreamFeed {
    /** Entity Base */
    entityType: string;
    entityId: string;
    createdAt: number;
    updatedAt: number;
    Deleted: boolean;
    syncError: FeedSyncError | undefined;
    isSynced: boolean;
    /** Feed Fields */
    rootPostCount: number;
    postCount: number;
    collectionIdentifier: string;
    feedType: string;
    sortKey: string;
    /**
     * Custom Fields
     *
     * @deprecated
     */
    experienceId: string;
    banUrls: boolean;
    banMedia: boolean;
    banUnverifiedUsers: boolean;
    bannedWords: string[];
    userPostsCooldownSeconds: number;
    whoCanReact: FeedLivestreamFeed_MemberPermissionType;
    whoCanPost: FeedLivestreamFeed_MemberPermissionType;
    recordingUrl?: string | undefined;
    thumbnailUrl?: string | undefined;
    experienceIds: string[];
    reactionsEnabled: boolean;
    /** Livekit fields */
    title: string;
    description: string;
    emptyTimeout: number;
    maxParticipants: number;
    scheduledAt: number;
    startedAt: number;
    endedAt: number;
    metadata: {
        [key: string]: string;
    };
    hostId: string;
    recording?: FileAttachment | undefined;
}
declare const FeedLivestreamFeed_MemberPermissionType: {
    readonly UNKNOWN: "UNKNOWN";
    readonly NONE: "NONE";
    readonly EVERYONE: "EVERYONE";
    readonly ADMINS: "ADMINS";
    readonly PRODUCT_OWNERS: "PRODUCT_OWNERS";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type FeedLivestreamFeed_MemberPermissionType = typeof FeedLivestreamFeed_MemberPermissionType[keyof typeof FeedLivestreamFeed_MemberPermissionType];
declare namespace FeedLivestreamFeed_MemberPermissionType {
    type UNKNOWN = typeof FeedLivestreamFeed_MemberPermissionType.UNKNOWN;
    type NONE = typeof FeedLivestreamFeed_MemberPermissionType.NONE;
    type EVERYONE = typeof FeedLivestreamFeed_MemberPermissionType.EVERYONE;
    type ADMINS = typeof FeedLivestreamFeed_MemberPermissionType.ADMINS;
    type PRODUCT_OWNERS = typeof FeedLivestreamFeed_MemberPermissionType.PRODUCT_OWNERS;
    type UNRECOGNIZED = typeof FeedLivestreamFeed_MemberPermissionType.UNRECOGNIZED;
}
interface FeedLivestreamFeed_MetadataEntry {
    key: string;
    value: string;
}
interface FeedMutedUser {
    /** Entity Base */
    entityType: string;
    entityId: string;
    createdAt: number;
    updatedAt: number;
    Deleted: boolean;
    syncError: FeedSyncError | undefined;
    isSynced: boolean;
    /** Custom Fields */
    userId: string;
    feedId: string;
    feedType: string;
    mutedUntil: number;
}
interface FeedDmsFeedMember {
    /** Entity Base */
    entityType: string;
    entityId: string;
    createdAt: number;
    updatedAt: number;
    Deleted: boolean;
    syncError: FeedSyncError | undefined;
    isSynced: boolean;
    /** Feed Member Fields */
    feedId: string;
    userId: string;
    companyId: string;
    feedType: string;
    sortKey: string;
    /** Custom Fields */
    status: FeedDmsFeedMember_DmsFeedMemberStatus;
    lastViewedAt: number;
    lastTypedAt: number;
    notificationPreference: FeedDmsFeedMember_NotificationPreference;
    pinnedPosition?: number | undefined;
}
declare const FeedDmsFeedMember_DmsFeedMemberStatus: {
    readonly UNKNOWN_STATUS: "UNKNOWN_STATUS";
    readonly REQUESTED: "REQUESTED";
    readonly ACCEPTED: "ACCEPTED";
    readonly REJECTED: "REJECTED";
    readonly CLOSED: "CLOSED";
    readonly ARCHIVED: "ARCHIVED";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type FeedDmsFeedMember_DmsFeedMemberStatus = typeof FeedDmsFeedMember_DmsFeedMemberStatus[keyof typeof FeedDmsFeedMember_DmsFeedMemberStatus];
declare namespace FeedDmsFeedMember_DmsFeedMemberStatus {
    type UNKNOWN_STATUS = typeof FeedDmsFeedMember_DmsFeedMemberStatus.UNKNOWN_STATUS;
    type REQUESTED = typeof FeedDmsFeedMember_DmsFeedMemberStatus.REQUESTED;
    type ACCEPTED = typeof FeedDmsFeedMember_DmsFeedMemberStatus.ACCEPTED;
    type REJECTED = typeof FeedDmsFeedMember_DmsFeedMemberStatus.REJECTED;
    type CLOSED = typeof FeedDmsFeedMember_DmsFeedMemberStatus.CLOSED;
    type ARCHIVED = typeof FeedDmsFeedMember_DmsFeedMemberStatus.ARCHIVED;
    type UNRECOGNIZED = typeof FeedDmsFeedMember_DmsFeedMemberStatus.UNRECOGNIZED;
}
declare const FeedDmsFeedMember_NotificationPreference: {
    readonly UNKNOWN_PREFERENCE: "UNKNOWN_PREFERENCE";
    readonly ALL: "ALL";
    readonly MENTIONS: "MENTIONS";
    readonly NONE: "NONE";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type FeedDmsFeedMember_NotificationPreference = typeof FeedDmsFeedMember_NotificationPreference[keyof typeof FeedDmsFeedMember_NotificationPreference];
declare namespace FeedDmsFeedMember_NotificationPreference {
    type UNKNOWN_PREFERENCE = typeof FeedDmsFeedMember_NotificationPreference.UNKNOWN_PREFERENCE;
    type ALL = typeof FeedDmsFeedMember_NotificationPreference.ALL;
    type MENTIONS = typeof FeedDmsFeedMember_NotificationPreference.MENTIONS;
    type NONE = typeof FeedDmsFeedMember_NotificationPreference.NONE;
    type UNRECOGNIZED = typeof FeedDmsFeedMember_NotificationPreference.UNRECOGNIZED;
}
interface FeedReaction {
    /** Entity Base */
    entityType: string;
    entityId: string;
    createdAt: number;
    updatedAt: number;
    Deleted: boolean;
    syncError: FeedSyncError | undefined;
    isSynced: boolean;
    /** Custom Fields */
    postId: string;
    postType: string;
    userId: string;
    feedId: string;
    feedType: string;
    reactionType: FeedReaction_ReactionType;
    value: string;
    score: number;
}
declare const FeedReaction_ReactionType: {
    readonly UNKNOWN: "UNKNOWN";
    readonly LIKE: "LIKE";
    readonly EMOJI: "EMOJI";
    readonly VIEW: "VIEW";
    readonly VOTE: "VOTE";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type FeedReaction_ReactionType = typeof FeedReaction_ReactionType[keyof typeof FeedReaction_ReactionType];
declare namespace FeedReaction_ReactionType {
    type UNKNOWN = typeof FeedReaction_ReactionType.UNKNOWN;
    type LIKE = typeof FeedReaction_ReactionType.LIKE;
    type EMOJI = typeof FeedReaction_ReactionType.EMOJI;
    type VIEW = typeof FeedReaction_ReactionType.VIEW;
    type VOTE = typeof FeedReaction_ReactionType.VOTE;
    type UNRECOGNIZED = typeof FeedReaction_ReactionType.UNRECOGNIZED;
}
interface FeedUser {
    /** Entity Base */
    entityType: string;
    entityId: string;
    createdAt: number;
    updatedAt: number;
    Deleted: boolean;
    syncError: FeedSyncError | undefined;
    isSynced: boolean;
    /** Custom Fields */
    name: string;
    profilePic: string;
    username: string;
    profilePic32: string;
    profilePic64: string;
    profilePic128: string;
    userType: UserType;
}
interface FeedForumFeed {
    /** Entity Base */
    entityId: string;
    createdAt: number;
    updatedAt: number;
    isDeleted: boolean;
    /** Feed Fields */
    rootPostCount: number;
    postCount: number;
    collectionIdentifier: string;
    feedType: string;
    sortKey: string;
    /** Custom Fields */
    bannerImage: FileAttachment | undefined;
    whoCanPost: FeedForumFeed_MemberPermissionType;
    whoCanComment: FeedForumFeed_MemberPermissionType;
    layoutType: FeedForumFeed_LayoutType;
    discordWebhookUrl: string;
    telegramChannelId: string;
    emailNotificationPreference: FeedForumFeed_EmailNotificationPreferenceType;
}
declare const FeedForumFeed_MemberPermissionType: {
    readonly UNKNOWN_PERMISSION: "UNKNOWN_PERMISSION";
    readonly EVERYONE: "EVERYONE";
    readonly ADMINS: "ADMINS";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type FeedForumFeed_MemberPermissionType = typeof FeedForumFeed_MemberPermissionType[keyof typeof FeedForumFeed_MemberPermissionType];
declare namespace FeedForumFeed_MemberPermissionType {
    type UNKNOWN_PERMISSION = typeof FeedForumFeed_MemberPermissionType.UNKNOWN_PERMISSION;
    type EVERYONE = typeof FeedForumFeed_MemberPermissionType.EVERYONE;
    type ADMINS = typeof FeedForumFeed_MemberPermissionType.ADMINS;
    type UNRECOGNIZED = typeof FeedForumFeed_MemberPermissionType.UNRECOGNIZED;
}
declare const FeedForumFeed_LayoutType: {
    readonly UNKNOWN_LAYOUT: "UNKNOWN_LAYOUT";
    readonly FEED: "FEED";
    readonly BLOG: "BLOG";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type FeedForumFeed_LayoutType = typeof FeedForumFeed_LayoutType[keyof typeof FeedForumFeed_LayoutType];
declare namespace FeedForumFeed_LayoutType {
    type UNKNOWN_LAYOUT = typeof FeedForumFeed_LayoutType.UNKNOWN_LAYOUT;
    type FEED = typeof FeedForumFeed_LayoutType.FEED;
    type BLOG = typeof FeedForumFeed_LayoutType.BLOG;
    type UNRECOGNIZED = typeof FeedForumFeed_LayoutType.UNRECOGNIZED;
}
declare const FeedForumFeed_EmailNotificationPreferenceType: {
    readonly UNKNOWN_PREFERENCE: "UNKNOWN_PREFERENCE";
    readonly ALL_ADMIN_POSTS: "ALL_ADMIN_POSTS";
    readonly ONLY_WEEKLY_SUMMARY: "ONLY_WEEKLY_SUMMARY";
    readonly NONE: "NONE";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type FeedForumFeed_EmailNotificationPreferenceType = typeof FeedForumFeed_EmailNotificationPreferenceType[keyof typeof FeedForumFeed_EmailNotificationPreferenceType];
declare namespace FeedForumFeed_EmailNotificationPreferenceType {
    type UNKNOWN_PREFERENCE = typeof FeedForumFeed_EmailNotificationPreferenceType.UNKNOWN_PREFERENCE;
    type ALL_ADMIN_POSTS = typeof FeedForumFeed_EmailNotificationPreferenceType.ALL_ADMIN_POSTS;
    type ONLY_WEEKLY_SUMMARY = typeof FeedForumFeed_EmailNotificationPreferenceType.ONLY_WEEKLY_SUMMARY;
    type NONE = typeof FeedForumFeed_EmailNotificationPreferenceType.NONE;
    type UNRECOGNIZED = typeof FeedForumFeed_EmailNotificationPreferenceType.UNRECOGNIZED;
}
interface MuxAsset {
    assetId?: string | undefined;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    duration?: string | undefined;
    finishedUploadingAt?: string | undefined;
    id: string;
    playbackId?: string | undefined;
    resourceId?: string | undefined;
    resourceType?: string | undefined;
    signedPlaybackId?: string | undefined;
    status: MuxAsset_MuxAssetStatus;
    signedVideoPlaybackToken?: string | undefined;
    signedStoryboardPlaybackToken?: string | undefined;
    signedThumbnailPlaybackToken?: string | undefined;
}
declare const MuxAsset_MuxAssetStatus: {
    readonly UNKNOWN: "UNKNOWN";
    readonly UPLOADING: "UPLOADING";
    readonly CREATED: "CREATED";
    readonly READY: "READY";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type MuxAsset_MuxAssetStatus = typeof MuxAsset_MuxAssetStatus[keyof typeof MuxAsset_MuxAssetStatus];
declare namespace MuxAsset_MuxAssetStatus {
    type UNKNOWN = typeof MuxAsset_MuxAssetStatus.UNKNOWN;
    type UPLOADING = typeof MuxAsset_MuxAssetStatus.UPLOADING;
    type CREATED = typeof MuxAsset_MuxAssetStatus.CREATED;
    type READY = typeof MuxAsset_MuxAssetStatus.READY;
    type UNRECOGNIZED = typeof MuxAsset_MuxAssetStatus.UNRECOGNIZED;
}
interface Poll {
    options: Poll_PollOption[];
}
interface Poll_PollOption {
    id: string;
    text: string;
}
interface PostReactionCount {
    reactionType: PostReactionCount_ReactionType;
    value: string;
    totalScore: number;
    userCount: number;
}
declare const PostReactionCount_ReactionType: {
    readonly UNKNOWN: "UNKNOWN";
    readonly LIKE: "LIKE";
    readonly EMOJI: "EMOJI";
    readonly VIEW: "VIEW";
    readonly VOTE: "VOTE";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type PostReactionCount_ReactionType = typeof PostReactionCount_ReactionType[keyof typeof PostReactionCount_ReactionType];
declare namespace PostReactionCount_ReactionType {
    type UNKNOWN = typeof PostReactionCount_ReactionType.UNKNOWN;
    type LIKE = typeof PostReactionCount_ReactionType.LIKE;
    type EMOJI = typeof PostReactionCount_ReactionType.EMOJI;
    type VIEW = typeof PostReactionCount_ReactionType.VIEW;
    type VOTE = typeof PostReactionCount_ReactionType.VOTE;
    type UNRECOGNIZED = typeof PostReactionCount_ReactionType.UNRECOGNIZED;
}
interface FeedPostReactionCountUpdate {
    postId: string;
    postType: string;
    feedId: string;
    feedType: string;
    /**
     * Contains a bitmask of the fields that were updated.
     * Only apply the fields that were updated.
     * Eg if this contains the number 3 (0b00000011), then the view count and post reaction counts were updated.
     * If this contains the number 1 (0b00000001), then only the view count was updated.
     * If this contains the number 2 (0b00000010), then only the post reaction counts were updated.
     * This is needed because "optional repeated" fields are not supported in the protobuf spec.
     */
    updatedFieldsBitmask: number;
    /** Position zero in the bitmask (0b00000001) is the view count */
    viewCount?: number | undefined;
    /** Position one in the bitmask (0b00000010) is the post reaction counts */
    postReactionCounts: PostReactionCount[];
    /**
     * Position two in the bitmask (0b00000100) is the single post reaction count
     * This may be sent by the backend to indicate that a single post reaction count was updated. The frontend should keep all other post reaction counts the same.
     * Only the score and user_count fields may be updated by the backend, the rest indicate which reaction was updated
     */
    singleReactionCountUpdate?: PostReactionCount | undefined;
    /** Position three in the bitmask (0b00001000) is the comment count */
    commentCount?: number | undefined;
}
interface FeedForumPost {
    /** Entity Base */
    entityId: string;
    createdAt: number;
    updatedAt: number;
    isDeleted: boolean;
    sortKey: string;
    /** Custom Fields */
    feedId: string;
    userId: string;
    parentId?: string | undefined;
    isEdited: boolean;
    title?: string | undefined;
    content: string;
    richContent: string;
    childrenCount: number;
    /**
     * Deprecated in favor of post_reaction_counts
     *
     * @deprecated
     */
    reactionCounts: FeedForumPost_ReactionCounts | undefined;
    attachments: FileAttachment[];
    gifs: FeedForumPost_GiphyGif[];
    links: FeedForumPost_LinkEmbed[];
    isPinned: boolean;
    mentionedUserIds: string[];
    lineItem?: FeedForumPost_LineItem | undefined;
    muxAssets: MuxAsset[];
    poll?: Poll | undefined;
    isPosterAdmin: boolean;
    postReactionCounts: PostReactionCount[];
    forumPostType: FeedForumPost_ForumPostType;
    embed?: PostEmbed | undefined;
    user: User | undefined;
    commentCount: number;
    viewCount: number;
    experienceId?: string | undefined;
    markdownContent: string;
}
declare const FeedForumPost_ForumPostType: {
    readonly UNKNOWN_TYPE: "UNKNOWN_TYPE";
    readonly REGULAR: "REGULAR";
    readonly AUTOMATED: "AUTOMATED";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type FeedForumPost_ForumPostType = typeof FeedForumPost_ForumPostType[keyof typeof FeedForumPost_ForumPostType];
declare namespace FeedForumPost_ForumPostType {
    type UNKNOWN_TYPE = typeof FeedForumPost_ForumPostType.UNKNOWN_TYPE;
    type REGULAR = typeof FeedForumPost_ForumPostType.REGULAR;
    type AUTOMATED = typeof FeedForumPost_ForumPostType.AUTOMATED;
    type UNRECOGNIZED = typeof FeedForumPost_ForumPostType.UNRECOGNIZED;
}
interface FeedForumPost_GiphyGif {
    title: string;
    url: string;
    originalUrl: string;
    previewUrl: string;
    width: number;
    height: number;
    slug: string;
}
interface FeedForumPost_ReactionCount {
    score: number;
    count: number;
}
interface FeedForumPost_ReactionCounts {
    counts: {
        [key: string]: FeedForumPost_ReactionCount;
    };
}
interface FeedForumPost_ReactionCounts_CountsEntry {
    key: string;
    value: FeedForumPost_ReactionCount | undefined;
}
interface FeedForumPost_LinkEmbed {
    url: string;
    title: string;
    description: string;
    image: string;
    favicon: string;
    processing: boolean;
}
interface FeedForumPost_LineItem {
    id: string;
    title: string;
    amount: Money | undefined;
    redirectUrl: string;
}
interface PostEmbed {
    richEmbeds?: RichEmbedContainer | undefined;
}
interface RichEmbedContainer {
    embeds: RichEmbed[];
}
/** close enough to mirror a discord style rich embed. https://discord.com/developers/docs/resources/message#embed-object */
interface RichEmbed {
    color?: number | undefined;
    title?: string | undefined;
    url?: string | undefined;
    description?: string | undefined;
    timestamp?: string | undefined;
    thumbnail?: FileAttachment | undefined;
    image?: FileAttachment | undefined;
    footer?: RichEmbed_Footer | undefined;
    fields: RichEmbed_Field[];
}
interface RichEmbed_Field {
    name: string;
    value: string;
    inline: boolean;
}
interface RichEmbed_Footer {
    text: string;
    icon?: FileAttachment | undefined;
}
interface FeedDmsUnreadBadgeUpdate {
    count: number;
    feedId: string;
    lastViewedAt: string | undefined;
}
interface FeedService {
    /** @deprecated */
    SendFeedEntityToUser(request: SendFeedEntityToUserRequest): Promise<SendFeedEntityToUserResponse>;
}

interface Bounty {
    id: string;
    baseUnitAmount: number;
    budget: Money | undefined;
    rewardPerUnit: Money | undefined;
    totalPaid: Money | undefined;
    bountySubmissionsCount: number;
    description: string;
    richDescription: string;
    title: string;
    user: User | undefined;
    status: Bounty_BountyStatus;
    allowInstagram: boolean;
    allowTiktok: boolean;
    allowYoutube: boolean;
    allowX: boolean;
    allowPayoutMultiples: boolean;
    allowMultipleSubmissions: boolean;
    rewardUnit: Bounty_BountyRewardUnit;
    createdAt: string | undefined;
    updatedAt: string | undefined;
}
declare const Bounty_BountyStatus: {
    readonly UNKNOWN_STATUS: "UNKNOWN_STATUS";
    readonly PUBLISHED: "PUBLISHED";
    readonly ARCHIVED: "ARCHIVED";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type Bounty_BountyStatus = typeof Bounty_BountyStatus[keyof typeof Bounty_BountyStatus];
declare namespace Bounty_BountyStatus {
    type UNKNOWN_STATUS = typeof Bounty_BountyStatus.UNKNOWN_STATUS;
    type PUBLISHED = typeof Bounty_BountyStatus.PUBLISHED;
    type ARCHIVED = typeof Bounty_BountyStatus.ARCHIVED;
    type UNRECOGNIZED = typeof Bounty_BountyStatus.UNRECOGNIZED;
}
declare const Bounty_BountyRewardUnit: {
    readonly UNKNOWN_REWARD_UNIT: "UNKNOWN_REWARD_UNIT";
    readonly PER_SUBMISSION: "PER_SUBMISSION";
    readonly PER_VIEW: "PER_VIEW";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type Bounty_BountyRewardUnit = typeof Bounty_BountyRewardUnit[keyof typeof Bounty_BountyRewardUnit];
declare namespace Bounty_BountyRewardUnit {
    type UNKNOWN_REWARD_UNIT = typeof Bounty_BountyRewardUnit.UNKNOWN_REWARD_UNIT;
    type PER_SUBMISSION = typeof Bounty_BountyRewardUnit.PER_SUBMISSION;
    type PER_VIEW = typeof Bounty_BountyRewardUnit.PER_VIEW;
    type UNRECOGNIZED = typeof Bounty_BountyRewardUnit.UNRECOGNIZED;
}
interface BountySubmission {
    id: string;
    bountyId: string;
    user: User | undefined;
    content?: string | undefined;
    denialReason?: string | undefined;
    status: BountySubmission_BountySubmissionStatus;
    createdAt: string | undefined;
    updatedAt: string | undefined;
}
declare const BountySubmission_BountySubmissionStatus: {
    readonly UNKNOWN_STATUS: "UNKNOWN_STATUS";
    readonly PENDING: "PENDING";
    readonly APPROVED: "APPROVED";
    readonly DENIED: "DENIED";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type BountySubmission_BountySubmissionStatus = typeof BountySubmission_BountySubmissionStatus[keyof typeof BountySubmission_BountySubmissionStatus];
declare namespace BountySubmission_BountySubmissionStatus {
    type UNKNOWN_STATUS = typeof BountySubmission_BountySubmissionStatus.UNKNOWN_STATUS;
    type PENDING = typeof BountySubmission_BountySubmissionStatus.PENDING;
    type APPROVED = typeof BountySubmission_BountySubmissionStatus.APPROVED;
    type DENIED = typeof BountySubmission_BountySubmissionStatus.DENIED;
    type UNRECOGNIZED = typeof BountySubmission_BountySubmissionStatus.UNRECOGNIZED;
}

interface Availability {
    id: string;
    host?: User | undefined;
    title: string;
    durationInMinutes: number;
    tagline?: string | undefined;
    description?: string | undefined;
    price?: Money | undefined;
    timezone?: string | undefined;
    location?: string | undefined;
    meetingLink?: string | undefined;
    createdAt: string | undefined;
    updatedAt: string | undefined;
}
interface Booking {
    id: string;
    user: User | undefined;
    availabilityId: string;
    startsAt: string | undefined;
    endsAt: string | undefined;
    reservedUntil?: string | undefined;
    canceledAt?: string | undefined;
    createdAt: string | undefined;
    updatedAt: string | undefined;
}

interface ContentDocument {
    id: string;
    title?: string | undefined;
    content?: string | undefined;
    createdAt: string | undefined;
    updatedAt: string | undefined;
}

declare const ContentPlatform: {
    readonly UNKNOWN_PLATFORM: "UNKNOWN_PLATFORM";
    readonly INSTAGRAM: "INSTAGRAM";
    readonly TIKTOK: "TIKTOK";
    readonly X: "X";
    readonly YOUTUBE: "YOUTUBE";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type ContentPlatform = typeof ContentPlatform[keyof typeof ContentPlatform];
declare namespace ContentPlatform {
    type UNKNOWN_PLATFORM = typeof ContentPlatform.UNKNOWN_PLATFORM;
    type INSTAGRAM = typeof ContentPlatform.INSTAGRAM;
    type TIKTOK = typeof ContentPlatform.TIKTOK;
    type X = typeof ContentPlatform.X;
    type YOUTUBE = typeof ContentPlatform.YOUTUBE;
    type UNRECOGNIZED = typeof ContentPlatform.UNRECOGNIZED;
}
interface ContentRewardsCampaign {
    id: string;
    allowInstagram: boolean;
    allowTiktok: boolean;
    allowX: boolean;
    allowYoutube: boolean;
    totalBudget: Money | undefined;
    category: ContentRewardsCampaign_Category;
    contentType: ContentRewardsCampaign_ContentType;
    expiresAt?: string | undefined;
    pendingSubmissionsCount: number;
    requirements: string[];
    rewardRatePerThousandViews: Money | undefined;
    status: ContentRewardsCampaign_Status;
    submissionsCount: number;
    title: string;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    totalPaid: Money | undefined;
    fileUploadRequired: boolean;
    totalViewCount: number;
    autoApproveSubmissionsInHours?: number | undefined;
    requiredDescriptionText: string[];
    requiredCreatorBioLink?: string | undefined;
    requiredTiktokAudio?: string | undefined;
    requiredInstagramAudio?: string | undefined;
    fixedRewardPerSubmission?: Money | undefined;
    totalPendingPayouts: Money | undefined;
}
declare const ContentRewardsCampaign_Status: {
    readonly UNKNOWN: "UNKNOWN";
    readonly ACTIVE: "ACTIVE";
    readonly PENDING: "PENDING";
    readonly EXPIRED: "EXPIRED";
    readonly ARCHIVED: "ARCHIVED";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type ContentRewardsCampaign_Status = typeof ContentRewardsCampaign_Status[keyof typeof ContentRewardsCampaign_Status];
declare namespace ContentRewardsCampaign_Status {
    type UNKNOWN = typeof ContentRewardsCampaign_Status.UNKNOWN;
    type ACTIVE = typeof ContentRewardsCampaign_Status.ACTIVE;
    type PENDING = typeof ContentRewardsCampaign_Status.PENDING;
    type EXPIRED = typeof ContentRewardsCampaign_Status.EXPIRED;
    type ARCHIVED = typeof ContentRewardsCampaign_Status.ARCHIVED;
    type UNRECOGNIZED = typeof ContentRewardsCampaign_Status.UNRECOGNIZED;
}
declare const ContentRewardsCampaign_ContentType: {
    readonly UNKNOWN_CONTENT_TYPE: "UNKNOWN_CONTENT_TYPE";
    readonly UGC: "UGC";
    readonly CLIPPING: "CLIPPING";
    /** @deprecated */
    readonly FACELESS: "FACELESS";
    readonly OTHER_CONTENT_TYPE: "OTHER_CONTENT_TYPE";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type ContentRewardsCampaign_ContentType = typeof ContentRewardsCampaign_ContentType[keyof typeof ContentRewardsCampaign_ContentType];
declare namespace ContentRewardsCampaign_ContentType {
    type UNKNOWN_CONTENT_TYPE = typeof ContentRewardsCampaign_ContentType.UNKNOWN_CONTENT_TYPE;
    type UGC = typeof ContentRewardsCampaign_ContentType.UGC;
    type CLIPPING = typeof ContentRewardsCampaign_ContentType.CLIPPING;
    type FACELESS = typeof ContentRewardsCampaign_ContentType.FACELESS;
    type OTHER_CONTENT_TYPE = typeof ContentRewardsCampaign_ContentType.OTHER_CONTENT_TYPE;
    type UNRECOGNIZED = typeof ContentRewardsCampaign_ContentType.UNRECOGNIZED;
}
declare const ContentRewardsCampaign_Category: {
    readonly UNKNOWN_CATEGORY: "UNKNOWN_CATEGORY";
    /** @deprecated */
    readonly CREATOR: "CREATOR";
    /** @deprecated */
    readonly BRAND: "BRAND";
    /** @deprecated */
    readonly INFLUENCER: "INFLUENCER";
    /** @deprecated */
    readonly STREAMER: "STREAMER";
    /** @deprecated */
    readonly MUSICIAN: "MUSICIAN";
    readonly OTHER: "OTHER";
    /** @deprecated */
    readonly ECOMMERCE: "ECOMMERCE";
    readonly LOGO: "LOGO";
    readonly MUSIC: "MUSIC";
    /** @deprecated */
    readonly PODCAST: "PODCAST";
    /** @deprecated */
    readonly SOFTWARE: "SOFTWARE";
    /** @deprecated */
    readonly STREAM: "STREAM";
    readonly ENTERTAINMENT: "ENTERTAINMENT";
    readonly PRODUCTS: "PRODUCTS";
    readonly PERSONAL_BRAND: "PERSONAL_BRAND";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type ContentRewardsCampaign_Category = typeof ContentRewardsCampaign_Category[keyof typeof ContentRewardsCampaign_Category];
declare namespace ContentRewardsCampaign_Category {
    type UNKNOWN_CATEGORY = typeof ContentRewardsCampaign_Category.UNKNOWN_CATEGORY;
    type CREATOR = typeof ContentRewardsCampaign_Category.CREATOR;
    type BRAND = typeof ContentRewardsCampaign_Category.BRAND;
    type INFLUENCER = typeof ContentRewardsCampaign_Category.INFLUENCER;
    type STREAMER = typeof ContentRewardsCampaign_Category.STREAMER;
    type MUSICIAN = typeof ContentRewardsCampaign_Category.MUSICIAN;
    type OTHER = typeof ContentRewardsCampaign_Category.OTHER;
    type ECOMMERCE = typeof ContentRewardsCampaign_Category.ECOMMERCE;
    type LOGO = typeof ContentRewardsCampaign_Category.LOGO;
    type MUSIC = typeof ContentRewardsCampaign_Category.MUSIC;
    type PODCAST = typeof ContentRewardsCampaign_Category.PODCAST;
    type SOFTWARE = typeof ContentRewardsCampaign_Category.SOFTWARE;
    type STREAM = typeof ContentRewardsCampaign_Category.STREAM;
    type ENTERTAINMENT = typeof ContentRewardsCampaign_Category.ENTERTAINMENT;
    type PRODUCTS = typeof ContentRewardsCampaign_Category.PRODUCTS;
    type PERSONAL_BRAND = typeof ContentRewardsCampaign_Category.PERSONAL_BRAND;
    type UNRECOGNIZED = typeof ContentRewardsCampaign_Category.UNRECOGNIZED;
}
interface ContentRewardsSubmission {
    id: string;
    totalPaid: Money | undefined;
    totalViewCount: number;
    contentUrl: string;
    platform: ContentPlatform;
    status: ContentRewardsSubmission_Status;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    campaignId: string;
    platformPostId?: string | undefined;
    userId: string;
    user: User | undefined;
    attachments: FileAttachment[];
    totalLikeCount: number;
    totalCommentCount: number;
    totalSaveCount: number;
    totalShareCount: number;
    totalRepostCount: number;
}
declare const ContentRewardsSubmission_Status: {
    readonly UNKNOWN: "UNKNOWN";
    readonly PENDING: "PENDING";
    readonly APPROVED: "APPROVED";
    readonly REJECTED: "REJECTED";
    readonly FLAGGED: "FLAGGED";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type ContentRewardsSubmission_Status = typeof ContentRewardsSubmission_Status[keyof typeof ContentRewardsSubmission_Status];
declare namespace ContentRewardsSubmission_Status {
    type UNKNOWN = typeof ContentRewardsSubmission_Status.UNKNOWN;
    type PENDING = typeof ContentRewardsSubmission_Status.PENDING;
    type APPROVED = typeof ContentRewardsSubmission_Status.APPROVED;
    type REJECTED = typeof ContentRewardsSubmission_Status.REJECTED;
    type FLAGGED = typeof ContentRewardsSubmission_Status.FLAGGED;
    type UNRECOGNIZED = typeof ContentRewardsSubmission_Status.UNRECOGNIZED;
}
interface ContentRewardsMessage {
    contentRewardsCampaign?: ContentRewardsCampaign | undefined;
    contentRewardsSubmission?: ContentRewardsSubmission | undefined;
}

interface Course {
    id: string;
    title?: string | undefined;
    tagline?: string | undefined;
    description?: string | undefined;
    coverImageUrl?: string | undefined;
    lessonsCount: number;
    createdAt: string | undefined;
    updatedAt: string | undefined;
}

interface Event {
    id: string;
    title: string;
    description?: string | undefined;
    maxCapacity?: number | undefined;
    recordingUrl?: string | undefined;
    thumbnailUrl?: string | undefined;
    recurringRule?: Event_RecurringRule | undefined;
    rrule?: string | undefined;
    seriesEndsAt?: string | undefined;
    startsAt: string | undefined;
    endsAt: string | undefined;
    location?: string | undefined;
    locationType: Event_LocationType;
    rsvpsCount: number;
    rsvpUsers: User[];
    hostName?: string | undefined;
    hostUser?: User | undefined;
    createdAt: string | undefined;
    updatedAt: string | undefined;
}
declare const Event_LocationType: {
    readonly UNKNOWN_LOCATION_TYPE: "UNKNOWN_LOCATION_TYPE";
    readonly OFFLINE: "OFFLINE";
    readonly ONLINE: "ONLINE";
    readonly ZOOM: "ZOOM";
    readonly GOOGLE_MEET: "GOOGLE_MEET";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type Event_LocationType = typeof Event_LocationType[keyof typeof Event_LocationType];
declare namespace Event_LocationType {
    type UNKNOWN_LOCATION_TYPE = typeof Event_LocationType.UNKNOWN_LOCATION_TYPE;
    type OFFLINE = typeof Event_LocationType.OFFLINE;
    type ONLINE = typeof Event_LocationType.ONLINE;
    type ZOOM = typeof Event_LocationType.ZOOM;
    type GOOGLE_MEET = typeof Event_LocationType.GOOGLE_MEET;
    type UNRECOGNIZED = typeof Event_LocationType.UNRECOGNIZED;
}
declare const Event_RecurringRule: {
    readonly UNKNOWN_RECURRING_RULE: "UNKNOWN_RECURRING_RULE";
    readonly DAILY: "DAILY";
    readonly WEEKLY: "WEEKLY";
    readonly MONTHLY: "MONTHLY";
    readonly YEARLY: "YEARLY";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type Event_RecurringRule = typeof Event_RecurringRule[keyof typeof Event_RecurringRule];
declare namespace Event_RecurringRule {
    type UNKNOWN_RECURRING_RULE = typeof Event_RecurringRule.UNKNOWN_RECURRING_RULE;
    type DAILY = typeof Event_RecurringRule.DAILY;
    type WEEKLY = typeof Event_RecurringRule.WEEKLY;
    type MONTHLY = typeof Event_RecurringRule.MONTHLY;
    type YEARLY = typeof Event_RecurringRule.YEARLY;
    type UNRECOGNIZED = typeof Event_RecurringRule.UNRECOGNIZED;
}

interface Wheel {
    id: string;
    hasCustomPrizes: boolean;
    createdAt: string | undefined;
    updatedAt: string | undefined;
}
interface Spin {
    id: string;
    wheelId: string;
    user: User | undefined;
    prize: Prize | undefined;
    status: Spin_SpinStatus;
    createdAt: string | undefined;
    updatedAt: string | undefined;
}
declare const Spin_SpinStatus: {
    readonly UNKNOWN_SPIN_STATUS: "UNKNOWN_SPIN_STATUS";
    readonly WON: "WON";
    readonly LOST: "LOST";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type Spin_SpinStatus = typeof Spin_SpinStatus[keyof typeof Spin_SpinStatus];
declare namespace Spin_SpinStatus {
    type UNKNOWN_SPIN_STATUS = typeof Spin_SpinStatus.UNKNOWN_SPIN_STATUS;
    type WON = typeof Spin_SpinStatus.WON;
    type LOST = typeof Spin_SpinStatus.LOST;
    type UNRECOGNIZED = typeof Spin_SpinStatus.UNRECOGNIZED;
}
interface Prize {
    id: string;
    name: string;
    imageUrl?: string | undefined;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    testingIgnore?: string | undefined;
}

interface PreviewContent {
    experienceId: string;
    lastActivityAt: string | undefined;
    genericCard?: GenericCard | undefined;
    chatCard?: ChatCard | undefined;
    forumCard?: ForumCard | undefined;
    contentRewardsCard?: ContentRewardsCard | undefined;
    livestreamingCard?: LivestreamingCard | undefined;
    bountiesCard?: BountiesCard | undefined;
    eventsCard?: EventsCard | undefined;
    calendarBookingsCard?: CalendarBookingsCard | undefined;
    wheelCard?: WheelCard | undefined;
    coursesCard?: CoursesCard | undefined;
    contentCard?: ContentCard | undefined;
}
interface ChatCard {
    recentMessages: FeedDmsPost[];
}
interface ForumCard {
    post: FeedForumPost | undefined;
    latestComment?: FeedForumPost | undefined;
}
interface ContentRewardsCard {
    campaign: ContentRewardsCampaign | undefined;
    latestSubmission?: ContentRewardsSubmission | undefined;
    hottestSubmission?: ContentRewardsSubmission | undefined;
}
interface LivestreamingCard {
    livestreamFeed: FeedLivestreamFeed | undefined;
}
interface BountiesCard {
    bounty: Bounty | undefined;
    latestSubmission?: BountySubmission | undefined;
}
interface EventsCard {
    event: Event | undefined;
}
interface CalendarBookingsCard {
    availability: Availability | undefined;
    latestBooking?: Booking | undefined;
}
interface WheelCard {
    wheel: Wheel | undefined;
    latestSpin?: Spin | undefined;
}
interface CoursesCard {
    course: Course | undefined;
}
interface ContentCard {
    contentDocument: ContentDocument | undefined;
}
interface GenericCard {
    title: string;
    description?: string | undefined;
    imageUrl?: string | undefined;
    ctaText?: string | undefined;
    user?: User | undefined;
}
interface BatchGetExperiencePreviewContentRequest {
    experienceIds: string[];
}
interface BatchGetExperiencePreviewContentResponse {
    experiencePreviewContentResponses: BatchGetExperiencePreviewContentResponse_ExperiencePreviewContentResponse[];
}
interface BatchGetExperiencePreviewContentResponse_ExperiencePreviewContentResponse {
    experienceId: string;
    websocketMessageBytes: Uint8Array;
}

interface Experience {
    id: string;
    name: string;
    app: App | undefined;
    bot: Bot | undefined;
    imageUrl: string;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    lastActivityAt: string | undefined;
    botId: string;
    appId: string;
    discardedAt?: string | undefined;
    previewContent?: PreviewContent | undefined;
    wentLiveAt?: string | undefined;
    areScreenshotsAllowed: boolean;
    description?: string | undefined;
    logo?: FileAttachment | undefined;
    expiresAt?: string | undefined;
    order?: number | undefined;
    sectionId?: string | undefined;
}
interface UserExperience {
    discardedAt?: string | undefined;
    firstGainedAccessAt?: string | undefined;
    isAuthorizedUser?: boolean | undefined;
    lastGainedAccessAt?: string | undefined;
    lastLostAccessAt?: string | undefined;
    lastViewedAt?: string | undefined;
    createdAt: string | undefined;
    updatedAt: string | undefined;
    botId: string;
    experienceId: string;
    userId: string;
    autoId: number;
    sourceAccessPassIds: string[];
}

interface Notification {
    id: string;
    subject: string;
    content: string;
    primaryImage: string;
    secondaryImage: string;
    restPath: string;
    createdAt: string | undefined;
    bot: Bot | undefined;
    experience: Experience | undefined;
    notificationTopic: NotificationTopic | undefined;
}
interface GoFetchNotifications {
    entityId: string;
    entityType: GoFetchNotifications_NotifyingEntityType;
    /** If true, the client should refetch the badge for this entity. */
    mayIncrementBadgeCount: boolean;
}
declare const GoFetchNotifications_NotifyingEntityType: {
    readonly UNKNOWN: "UNKNOWN";
    readonly GENERIC: "GENERIC";
    readonly EXPERIENCE: "EXPERIENCE";
    readonly COMPANY: "COMPANY";
    readonly COMPANY_TEAM: "COMPANY_TEAM";
    readonly ACCESS_PASS: "ACCESS_PASS";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type GoFetchNotifications_NotifyingEntityType = typeof GoFetchNotifications_NotifyingEntityType[keyof typeof GoFetchNotifications_NotifyingEntityType];
declare namespace GoFetchNotifications_NotifyingEntityType {
    type UNKNOWN = typeof GoFetchNotifications_NotifyingEntityType.UNKNOWN;
    type GENERIC = typeof GoFetchNotifications_NotifyingEntityType.GENERIC;
    type EXPERIENCE = typeof GoFetchNotifications_NotifyingEntityType.EXPERIENCE;
    type COMPANY = typeof GoFetchNotifications_NotifyingEntityType.COMPANY;
    type COMPANY_TEAM = typeof GoFetchNotifications_NotifyingEntityType.COMPANY_TEAM;
    type ACCESS_PASS = typeof GoFetchNotifications_NotifyingEntityType.ACCESS_PASS;
    type UNRECOGNIZED = typeof GoFetchNotifications_NotifyingEntityType.UNRECOGNIZED;
}
interface SendNotificationToUserRequest {
    userId: string;
    notification: Notification | undefined;
    userIds: string[];
}
interface SendNotificationToUserResponse {
    sent: boolean;
}
interface NotificationService {
    SendNotificationToUser(request: SendNotificationToUserRequest): Promise<SendNotificationToUserResponse>;
}

interface ProductSurface {
    surfaceType: ProductSurface_SurfaceType;
    botId?: string | undefined;
    accessPassId?: string | undefined;
    appId?: string | undefined;
    experienceId?: string | undefined;
    accessType?: AccessType | undefined;
    planId?: string | undefined;
    profileUserId?: string | undefined;
    viewContext?: ProductSurface_ViewContext | undefined;
    discoverSection?: ProductSurface_DiscoverSection | undefined;
    universalPostId?: string | undefined;
    feedTab?: ProductSurface_FeedTab | undefined;
}
declare const ProductSurface_ViewContext: {
    readonly VIEW_CTX_UNKNOWN: "VIEW_CTX_UNKNOWN";
    /** VIEW_CTX_WHOP - / The user is viewing from inside a whop view. */
    readonly VIEW_CTX_WHOP: "VIEW_CTX_WHOP";
    /** VIEW_CTX_HOME_FEED - / The user is viewing from the home feed */
    readonly VIEW_CTX_HOME_FEED: "VIEW_CTX_HOME_FEED";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type ProductSurface_ViewContext = typeof ProductSurface_ViewContext[keyof typeof ProductSurface_ViewContext];
declare namespace ProductSurface_ViewContext {
    type VIEW_CTX_UNKNOWN = typeof ProductSurface_ViewContext.VIEW_CTX_UNKNOWN;
    type VIEW_CTX_WHOP = typeof ProductSurface_ViewContext.VIEW_CTX_WHOP;
    type VIEW_CTX_HOME_FEED = typeof ProductSurface_ViewContext.VIEW_CTX_HOME_FEED;
    type UNRECOGNIZED = typeof ProductSurface_ViewContext.UNRECOGNIZED;
}
declare const ProductSurface_DiscoverSection: {
    readonly DISCOVER_UNKNOWN: "DISCOVER_UNKNOWN";
    readonly DISCOVER_LEADERBOARDS: "DISCOVER_LEADERBOARDS";
    readonly DISCOVER_FOR_YOU: "DISCOVER_FOR_YOU";
    readonly DISCOVER_EXPLORE: "DISCOVER_EXPLORE";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type ProductSurface_DiscoverSection = typeof ProductSurface_DiscoverSection[keyof typeof ProductSurface_DiscoverSection];
declare namespace ProductSurface_DiscoverSection {
    type DISCOVER_UNKNOWN = typeof ProductSurface_DiscoverSection.DISCOVER_UNKNOWN;
    type DISCOVER_LEADERBOARDS = typeof ProductSurface_DiscoverSection.DISCOVER_LEADERBOARDS;
    type DISCOVER_FOR_YOU = typeof ProductSurface_DiscoverSection.DISCOVER_FOR_YOU;
    type DISCOVER_EXPLORE = typeof ProductSurface_DiscoverSection.DISCOVER_EXPLORE;
    type UNRECOGNIZED = typeof ProductSurface_DiscoverSection.UNRECOGNIZED;
}
declare const ProductSurface_FeedTab: {
    readonly FEED_TAB_UNKNOWN: "FEED_TAB_UNKNOWN";
    readonly FEED_TAB_HOME: "FEED_TAB_HOME";
    readonly FEED_TAB_EARN: "FEED_TAB_EARN";
    readonly FEED_TAB_CHAT: "FEED_TAB_CHAT";
    readonly FEED_TAB_LEARN: "FEED_TAB_LEARN";
    readonly FEED_TAB_CALENDAR: "FEED_TAB_CALENDAR";
    readonly FEED_TAB_PLAY: "FEED_TAB_PLAY";
    readonly FEED_TAB_INTEGRATIONS: "FEED_TAB_INTEGRATIONS";
    readonly FEED_TAB_TOOLS: "FEED_TAB_TOOLS";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type ProductSurface_FeedTab = typeof ProductSurface_FeedTab[keyof typeof ProductSurface_FeedTab];
declare namespace ProductSurface_FeedTab {
    type FEED_TAB_UNKNOWN = typeof ProductSurface_FeedTab.FEED_TAB_UNKNOWN;
    type FEED_TAB_HOME = typeof ProductSurface_FeedTab.FEED_TAB_HOME;
    type FEED_TAB_EARN = typeof ProductSurface_FeedTab.FEED_TAB_EARN;
    type FEED_TAB_CHAT = typeof ProductSurface_FeedTab.FEED_TAB_CHAT;
    type FEED_TAB_LEARN = typeof ProductSurface_FeedTab.FEED_TAB_LEARN;
    type FEED_TAB_CALENDAR = typeof ProductSurface_FeedTab.FEED_TAB_CALENDAR;
    type FEED_TAB_PLAY = typeof ProductSurface_FeedTab.FEED_TAB_PLAY;
    type FEED_TAB_INTEGRATIONS = typeof ProductSurface_FeedTab.FEED_TAB_INTEGRATIONS;
    type FEED_TAB_TOOLS = typeof ProductSurface_FeedTab.FEED_TAB_TOOLS;
    type UNRECOGNIZED = typeof ProductSurface_FeedTab.UNRECOGNIZED;
}
declare const ProductSurface_SurfaceType: {
    readonly UNKNOWN: "UNKNOWN";
    readonly EXPERIENCE: "EXPERIENCE";
    readonly WHOP: "WHOP";
    readonly CREATOR_DASHBOARD: "CREATOR_DASHBOARD";
    readonly AFFILIATE_DASHBOARD: "AFFILIATE_DASHBOARD";
    readonly DISCOVER: "DISCOVER";
    readonly HOME_FEED: "HOME_FEED";
    readonly MESSAGES: "MESSAGES";
    readonly PROFILE: "PROFILE";
    readonly NOTIFICATIONS: "NOTIFICATIONS";
    readonly USER_SETTINGS: "USER_SETTINGS";
    readonly CHECKOUT: "CHECKOUT";
    readonly AUTH: "AUTH";
    readonly OTHER: "OTHER";
    readonly USER_ONBOARDING: "USER_ONBOARDING";
    readonly LEADERBOARD: "LEADERBOARD";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type ProductSurface_SurfaceType = typeof ProductSurface_SurfaceType[keyof typeof ProductSurface_SurfaceType];
declare namespace ProductSurface_SurfaceType {
    type UNKNOWN = typeof ProductSurface_SurfaceType.UNKNOWN;
    type EXPERIENCE = typeof ProductSurface_SurfaceType.EXPERIENCE;
    type WHOP = typeof ProductSurface_SurfaceType.WHOP;
    type CREATOR_DASHBOARD = typeof ProductSurface_SurfaceType.CREATOR_DASHBOARD;
    type AFFILIATE_DASHBOARD = typeof ProductSurface_SurfaceType.AFFILIATE_DASHBOARD;
    type DISCOVER = typeof ProductSurface_SurfaceType.DISCOVER;
    type HOME_FEED = typeof ProductSurface_SurfaceType.HOME_FEED;
    type MESSAGES = typeof ProductSurface_SurfaceType.MESSAGES;
    type PROFILE = typeof ProductSurface_SurfaceType.PROFILE;
    type NOTIFICATIONS = typeof ProductSurface_SurfaceType.NOTIFICATIONS;
    type USER_SETTINGS = typeof ProductSurface_SurfaceType.USER_SETTINGS;
    type CHECKOUT = typeof ProductSurface_SurfaceType.CHECKOUT;
    type AUTH = typeof ProductSurface_SurfaceType.AUTH;
    type OTHER = typeof ProductSurface_SurfaceType.OTHER;
    type USER_ONBOARDING = typeof ProductSurface_SurfaceType.USER_ONBOARDING;
    type LEADERBOARD = typeof ProductSurface_SurfaceType.LEADERBOARD;
    type UNRECOGNIZED = typeof ProductSurface_SurfaceType.UNRECOGNIZED;
}
interface ProductSurfaceUpdate {
    productSurface: ProductSurface | undefined;
    isAppForegrounded: boolean;
    /** The current url or screen that the user is on - used for debugging "other" screen views. */
    currentUrl?: string | undefined;
}
interface ActiveUserBucket {
    userBucketType: ActiveUserBucket_UserBucketType;
    id?: string | undefined;
}
declare const ActiveUserBucket_UserBucketType: {
    readonly UNKNOWN: "UNKNOWN";
    readonly EXPERIENCE: "EXPERIENCE";
    readonly WHOP: "WHOP";
    readonly STORE_PAGE: "STORE_PAGE";
    readonly MESSAGES: "MESSAGES";
    readonly HOME_FEED: "HOME_FEED";
    readonly DISCOVER: "DISCOVER";
    readonly BOT: "BOT";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type ActiveUserBucket_UserBucketType = typeof ActiveUserBucket_UserBucketType[keyof typeof ActiveUserBucket_UserBucketType];
declare namespace ActiveUserBucket_UserBucketType {
    type UNKNOWN = typeof ActiveUserBucket_UserBucketType.UNKNOWN;
    type EXPERIENCE = typeof ActiveUserBucket_UserBucketType.EXPERIENCE;
    type WHOP = typeof ActiveUserBucket_UserBucketType.WHOP;
    type STORE_PAGE = typeof ActiveUserBucket_UserBucketType.STORE_PAGE;
    type MESSAGES = typeof ActiveUserBucket_UserBucketType.MESSAGES;
    type HOME_FEED = typeof ActiveUserBucket_UserBucketType.HOME_FEED;
    type DISCOVER = typeof ActiveUserBucket_UserBucketType.DISCOVER;
    type BOT = typeof ActiveUserBucket_UserBucketType.BOT;
    type UNRECOGNIZED = typeof ActiveUserBucket_UserBucketType.UNRECOGNIZED;
}
interface ActiveUsersInBucket {
    activeUserBucket: ActiveUserBucket | undefined;
    /** / The number of users in the bucket. Always set to the total number of users in the bucket. */
    userCount: number;
    /** / The list of user ids that joined the bucket. Sent only on realtime pushes */
    joinedUsers: ActiveUsersInBucket_UserData[];
    /** / The list of user ids that left the bucket. Sent only on realtime pushes */
    leftUsers: ActiveUsersInBucket_UserData[];
    /** / The list of user ids in the bucket. Only populated if requested by the backend. */
    users: ActiveUsersInBucket_UserData[];
    /** / The offset used when making the request */
    offset?: number | undefined;
    /** / The limit used when making the request */
    limit?: number | undefined;
}
interface ActiveUsersInBucket_UserData {
    userId: string;
    cfLocation?: CfLocation | undefined;
}
interface GetUserLastSeenAtBatchRequest {
    userIds: string[];
}
interface GetUserLastSeenAtBatchResponse {
    usersLastSeenAt: {
        [key: string]: GetUserLastSeenAtBatchResponse_UserLastSeenAtResponse;
    };
}
interface GetUserLastSeenAtBatchResponse_UserLastSeenAtResponse {
    lastSeenAt: string | undefined;
}
interface GetUserLastSeenAtBatchResponse_UsersLastSeenAtEntry {
    key: string;
    value: GetUserLastSeenAtBatchResponse_UserLastSeenAtResponse | undefined;
}
interface GetActiveUsersInBucketBatchRequest {
    requests: GetActiveUsersInBucketBatchRequest_Request[];
}
interface GetActiveUsersInBucketBatchRequest_Request {
    activeUserBucket: ActiveUserBucket | undefined;
    /** / Whether to include the user ids in the response. */
    includeUserIds: boolean;
    /** / The maximum number of user ids to return. MAX=5000. Ordering = lexicographic by user_id */
    limit: number;
    /** / The offset used when making the request. */
    offset: number;
}
interface GetActiveUsersInBucketBatchResponse {
    activeUsersInBuckets: ActiveUsersInBucket[];
}
interface GetUserProductSurfacesBatchRequest {
    userIds: string[];
}
interface GetUserProductSurfacesBatchResponse {
    /**
     * / This returns a single product surface per user for simplicity.
     * / If they are currently active on multiple devices, this may change rapidly.
     * / If they are active on multiple devices, but only a single device is foregrounded,
     * / that device's product surface will be prioritized.
     */
    userProductSurfaces: {
        [key: string]: GetUserProductSurfacesBatchResponse_ProductSurfaceState;
    };
}
interface GetUserProductSurfacesBatchResponse_ProductSurfaceState {
    productSurface: ProductSurface | undefined;
    isAppForegrounded: boolean;
    lastUpdatedAt: string | undefined;
    firstSeenAt: string | undefined;
}
interface GetUserProductSurfacesBatchResponse_UserProductSurfacesEntry {
    key: string;
    value: GetUserProductSurfacesBatchResponse_ProductSurfaceState | undefined;
}
interface GetTopExperiencesByActiveUsersRequest {
    limit?: number | undefined;
    appFilter?: GetTopExperiencesByActiveUsersRequest_AppFilter | undefined;
}
declare const GetTopExperiencesByActiveUsersRequest_AppFilter: {
    readonly ALL: "ALL";
    readonly LIVESTREAMS: "LIVESTREAMS";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type GetTopExperiencesByActiveUsersRequest_AppFilter = typeof GetTopExperiencesByActiveUsersRequest_AppFilter[keyof typeof GetTopExperiencesByActiveUsersRequest_AppFilter];
declare namespace GetTopExperiencesByActiveUsersRequest_AppFilter {
    type ALL = typeof GetTopExperiencesByActiveUsersRequest_AppFilter.ALL;
    type LIVESTREAMS = typeof GetTopExperiencesByActiveUsersRequest_AppFilter.LIVESTREAMS;
    type UNRECOGNIZED = typeof GetTopExperiencesByActiveUsersRequest_AppFilter.UNRECOGNIZED;
}
interface GetTopExperiencesByActiveUsersResponse {
    experienceItems: GetTopExperiencesByActiveUsersResponse_ExperienceItem[];
}
interface GetTopExperiencesByActiveUsersResponse_ExperienceItem {
    experienceId: string;
    activeUserCount: number;
}
interface UserPresenceService {
    GetUserLastSeenAtBatch(request: GetUserLastSeenAtBatchRequest): Promise<GetUserLastSeenAtBatchResponse>;
    /** / Fetch a list of active users in a bucket, and their count. */
    GetActiveUsersInBucketBatch(request: GetActiveUsersInBucketBatchRequest): Promise<GetActiveUsersInBucketBatchResponse>;
    /** / Fetch where and when a user was last active. */
    GetUserProductSurfacesBatch(request: GetUserProductSurfacesBatchRequest): Promise<GetUserProductSurfacesBatchResponse>;
    /** Fetch the experience ids with the most amount of active users. */
    GetTopExperiencesByActiveUsers(request: GetTopExperiencesByActiveUsersRequest): Promise<GetTopExperiencesByActiveUsersResponse>;
}

interface Game {
    /** / The platform wide unique identifier for the game. */
    id: string;
    /** / The channel used for game websocket updates. To interact with the game, the clients must have access to this channel. */
    channel: Channel | undefined;
    /** / Whether the game is currently active. (If false, the game is destroyed and cannot be rejoined) */
    isActive: boolean;
    /** / Whether players are allowed to join the game. */
    isJoinable: boolean;
    /** / The participants in the game. Includes their count and the top entries in the leaderboard. */
    participants?: GameParticipants | undefined;
    /** / The user id of the user that caused the game to be created. Nil if the game was created by a non-user (e.g. automated lobby) */
    creatorUserId?: string | undefined;
}
interface GameParticipants {
    gameId: string;
    /** / The total number of players in the game. */
    playerCount: number;
    /** / The top entries in the leaderboard. */
    topLeaderboardMembers: UserGameState[];
}
/** / This proto is sent whenever a user joins a game, or when their score updates. */
interface UserGameState {
    gameId: string;
    /** / The user's id. (may or may not contain more user information) */
    user: User | undefined;
    /** / The user's current score, calculated by the game implementation. */
    score: number;
    /** / Whether the user just joined the game. */
    didJustJoin?: boolean | undefined;
}
/** / This proto is sent whenever a user leaves a game. */
interface UserLeftGameEvent {
    gameId: string;
    userId: string;
}
/** / Request to join a game. Sent by the client to the server. */
interface JoinGameCommand {
    gameId: string;
    joinToken?: string | undefined;
}
/** / Request to leave a game. Sent by the client to the server. */
interface LeaveGameCommand {
    gameId: string;
}

declare const QuizStatus: {
    readonly UNKNOWN: "UNKNOWN";
    readonly WAITING_FOR_PLAYERS: "WAITING_FOR_PLAYERS";
    readonly SHOW_QUESTION: "SHOW_QUESTION";
    readonly ANSWER_QUESTION: "ANSWER_QUESTION";
    readonly QUESTION_RESULT: "QUESTION_RESULT";
    readonly QUESTION_LEADERBOARD: "QUESTION_LEADERBOARD";
    readonly GAME_RESULT: "GAME_RESULT";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type QuizStatus = typeof QuizStatus[keyof typeof QuizStatus];
declare namespace QuizStatus {
    type UNKNOWN = typeof QuizStatus.UNKNOWN;
    type WAITING_FOR_PLAYERS = typeof QuizStatus.WAITING_FOR_PLAYERS;
    type SHOW_QUESTION = typeof QuizStatus.SHOW_QUESTION;
    type ANSWER_QUESTION = typeof QuizStatus.ANSWER_QUESTION;
    type QUESTION_RESULT = typeof QuizStatus.QUESTION_RESULT;
    type QUESTION_LEADERBOARD = typeof QuizStatus.QUESTION_LEADERBOARD;
    type GAME_RESULT = typeof QuizStatus.GAME_RESULT;
    type UNRECOGNIZED = typeof QuizStatus.UNRECOGNIZED;
}
interface GameState {
    game: Game | undefined;
    status: QuizStatus;
    quiz: Quiz | undefined;
    currentQuestion?: Question | undefined;
    currentQuestionIndex: number;
}
interface ClientCommand {
    /** / Sent by a user to create a new game. */
    createGame?: CreateGameCommand | undefined;
    /** / A command sent by the host that allowes them to move to the next phase of the game, or end the game or go back to the lobby. */
    hostCommand?: HostCommand | undefined;
    /** / Sent by the host to add questions to the game, while playing. */
    addQuestions?: AddQuestionsCommand | undefined;
    /** Player Commands */
    answerQuestion?: AnswerQuestionCommand | undefined;
}
interface CreateGameCommand {
    /** / The websocket channel that the game is being played on. */
    channel: Channel | undefined;
    /** / The quiz that is being played. Contains alls the questions */
    quiz: Quiz | undefined;
}
interface HostCommand {
    gameId: string;
    command: HostCommand_StatusCommand;
}
declare const HostCommand_StatusCommand: {
    readonly UNKNOWN: "UNKNOWN";
    /** NEXT - / Move to the next phase of the game. */
    readonly NEXT: "NEXT";
    /** END_GAME - / End the game immediately, skip results screen and destroy the session. */
    readonly END_GAME: "END_GAME";
    /** GO_BACK_TO_LOBBY - / Go back to the lobby, allowing more players to join while the current game is running. Does not reset the leaderboard. */
    readonly GO_BACK_TO_LOBBY: "GO_BACK_TO_LOBBY";
    /** SKIP_TO_END_RESULTS - / Skip the questions and go straight to the end state of the game. Shows the leaderboard. */
    readonly SKIP_TO_END_RESULTS: "SKIP_TO_END_RESULTS";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type HostCommand_StatusCommand = typeof HostCommand_StatusCommand[keyof typeof HostCommand_StatusCommand];
declare namespace HostCommand_StatusCommand {
    type UNKNOWN = typeof HostCommand_StatusCommand.UNKNOWN;
    type NEXT = typeof HostCommand_StatusCommand.NEXT;
    type END_GAME = typeof HostCommand_StatusCommand.END_GAME;
    type GO_BACK_TO_LOBBY = typeof HostCommand_StatusCommand.GO_BACK_TO_LOBBY;
    type SKIP_TO_END_RESULTS = typeof HostCommand_StatusCommand.SKIP_TO_END_RESULTS;
    type UNRECOGNIZED = typeof HostCommand_StatusCommand.UNRECOGNIZED;
}
/** / Sent by a player to answer a question. */
interface AnswerQuestionCommand {
    gameId: string;
    answer: IndividualAnswer | undefined;
}
/** / Allows the host to add questions to a running game. */
interface AddQuestionsCommand {
    gameId: string;
    questions: Question[];
}
/** / This is sent to create the game and configure the game settings. */
interface Quiz {
    id: string;
    title: string;
    description?: string | undefined;
    /** / The full list of questions and answers for the quiz. May be empty if this model is returned for playing users. */
    questions: Question[];
    totalQuestionCount?: number | undefined;
    /** / The amount of time players have to answer each question. */
    answerDuration: string | undefined;
    /** / The amount of time to show the question to the players before they can answer */
    questionShowDuration: string | undefined;
    /** / Whether the answer duration is applied to the question. If false, there will be an infinite amount of time to answer the question. */
    isAnswerDurationApplied: boolean;
}
interface Question {
    id: string;
    text: string;
    attachments: FileAttachment[];
    /** / Whether the question has a correct answer. Set to false for polls / votes / open ended questions. */
    hasCorrectAnswer: boolean;
    /** / Whether the answer has been revealed to the players. */
    isAnswerRevealed: boolean;
    /** / Reveal the aggregate results for the question. */
    aggregateResult?: QuestionAggregateResult | undefined;
    /** / The answer submitted by the current user. */
    currentUserAnswer?: IndividualAnswer | undefined;
    /** NumberQuestion number = 11; */
    multipleChoice?: MultipleChoiceQuestion | undefined;
}
interface MultipleChoiceQuestion {
    answers: MultipleChoiceAnswer[];
}
/** / A single answer for a multiple choice question. */
interface MultipleChoiceAnswer {
    id: string;
    text: string;
    attachments: FileAttachment[];
    isCorrect?: boolean | undefined;
}
/** / The aggregate results for a question. Show on the host screen */
interface QuestionAggregateResult {
    questionId: string;
    totalAnswers: number;
    multipleChoice?: MultipleChoiceAggregateResult | undefined;
}
/** / The aggregate results for a multiple choice question. Counts the number of times each answer was selected. */
interface MultipleChoiceAggregateResult {
    answerCounts: {
        [key: string]: number;
    };
}
interface MultipleChoiceAggregateResult_AnswerCountsEntry {
    key: string;
    value: number;
}
/** / A unique answer submitted by a player. */
interface IndividualAnswer {
    questionId: string;
    /** int64 number_answer = 3; // Add this back in if we want to support number questions. */
    multipleChoiceAnswerId?: string | undefined;
}

interface ServerToClientMessage {
    /** / Game implementation independent messages */
    participantsUpdate?: GameParticipants | undefined;
    userGameState?: UserGameState | undefined;
    userLeftGame?: UserLeftGameEvent | undefined;
    /** / Specific game implementation messages */
    quizzesGameState?: GameState | undefined;
}
interface ClientToServerMessage {
    /** / Game implementation independent messages */
    joinGame?: JoinGameCommand | undefined;
    leaveGame?: LeaveGameCommand | undefined;
    /** / Specific game implementation messages */
    quizzesClientCommand?: ClientCommand | undefined;
}

declare const ResourceType: {
    readonly RESOURCE_UNKNOWN: "RESOURCE_UNKNOWN";
    readonly RESOURCE_BOT: "RESOURCE_BOT";
    readonly RESOURCE_ACCESS_PASS: "RESOURCE_ACCESS_PASS";
    readonly RESOURCE_EXPERIENCE: "RESOURCE_EXPERIENCE";
    readonly RESOURCE_USER: "RESOURCE_USER";
    readonly RESOURCE_EXPERIENCE_PREVIEW_CONTENT: "RESOURCE_EXPERIENCE_PREVIEW_CONTENT";
    readonly RESOURCE_APP: "RESOURCE_APP";
    readonly RESOURCE_FORUM_FEED: "RESOURCE_FORUM_FEED";
    readonly RESOURCE_UNIVERSAL_POST: "RESOURCE_UNIVERSAL_POST";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type ResourceType = typeof ResourceType[keyof typeof ResourceType];
declare namespace ResourceType {
    type RESOURCE_UNKNOWN = typeof ResourceType.RESOURCE_UNKNOWN;
    type RESOURCE_BOT = typeof ResourceType.RESOURCE_BOT;
    type RESOURCE_ACCESS_PASS = typeof ResourceType.RESOURCE_ACCESS_PASS;
    type RESOURCE_EXPERIENCE = typeof ResourceType.RESOURCE_EXPERIENCE;
    type RESOURCE_USER = typeof ResourceType.RESOURCE_USER;
    type RESOURCE_EXPERIENCE_PREVIEW_CONTENT = typeof ResourceType.RESOURCE_EXPERIENCE_PREVIEW_CONTENT;
    type RESOURCE_APP = typeof ResourceType.RESOURCE_APP;
    type RESOURCE_FORUM_FEED = typeof ResourceType.RESOURCE_FORUM_FEED;
    type RESOURCE_UNIVERSAL_POST = typeof ResourceType.RESOURCE_UNIVERSAL_POST;
    type UNRECOGNIZED = typeof ResourceType.UNRECOGNIZED;
}
interface WebsocketMessageServerToClient {
    newNotification?: Notification | undefined;
    reconnect?: Reconnect | undefined;
    reloadClient?: ReloadClient | undefined;
    feedEntity?: FeedEntity | undefined;
    heartbeatResponse?: HeartbeatResponse | undefined;
    goFetchNotifications?: GoFetchNotifications | undefined;
    marketplaceStats?: MarketplaceStats | undefined;
    purchase?: Purchase | undefined;
    broadcastResponse?: BroadcastResponse | undefined;
    channelSubscriptionState?: ChannelSubscriptionState | undefined;
    discoveryAccessPassLiveData?: DiscoveryAccessPassLiveData | undefined;
    activeUsersInBucket?: ActiveUsersInBucket | undefined;
    gameMessage?: ServerToClientMessage | undefined;
    contentRewardsMessage?: ContentRewardsMessage | undefined;
    experience?: Experience | undefined;
    accessPassMember?: AccessPassMember | undefined;
    accessPassExperience?: AccessPassExperience | undefined;
    accessPass?: AccessPass | undefined;
    bot?: Bot | undefined;
    experiencePreviewContent?: PreviewContent | undefined;
    user?: User | undefined;
    app?: App | undefined;
    fileAttachment?: FileAttachment | undefined;
    userStat?: UserStat | undefined;
    userExperience?: UserExperience | undefined;
    entry?: Entry | undefined;
    userReferralMarketRates?: UserReferralMarketRates | undefined;
    appMessage?: AppMessage | undefined;
    goFetchExperienceList?: GoFetchExperienceList | undefined;
    appBuild?: AppBuild | undefined;
    accessPassExperienceSection?: AccessPassExperienceSection | undefined;
    goFetchUserExperiences?: GoFetchUserExperiences | undefined;
    member?: Member | undefined;
    botExperienceSection?: BotExperienceSection | undefined;
    userPresence?: UserPresence | undefined;
    businessActivityEvent?: BusinessActivityEvent | undefined;
    /** [TIMING] When was the message initially created. Eg: timestamp from the rails application. */
    createdAt: string | undefined;
    /** [TIMING] When was the message received by the websocket server. (in the GRPC handler) */
    processedAt: string | undefined;
    /** [TIMING] When was the message sent to the client by the websocket connection handler. */
    deliveredAt: string | undefined;
}
interface WebsocketMessageClientToServer {
    heartbeat?: Heartbeat | undefined;
    subscribeToChannel?: SubscribeToChannel | undefined;
    unsubscribeFromChannel?: UnsubscribeFromChannel | undefined;
    broadcastRequest?: BroadcastRequest | undefined;
    productSurfaceUpdate?: ProductSurfaceUpdate | undefined;
    gameCommand?: ClientToServerMessage | undefined;
    subscribeToChannelBatch?: SubscribeToChannelBatch | undefined;
    requestItemsBatchRequest?: RequestItemsBatchRequest | undefined;
    broadcastAppMessage?: BroadcastAppMessage | undefined;
}
interface Heartbeat {
    userish: ConnectedId | undefined;
    channels: Channel[];
    platform: Platform;
    /** Allow the client to send a semantic version number (useful on ios / android) */
    clientSemver: string;
    /** On web, the client can send the age of the client code (aka how long ago they loaded the page) */
    clientAge: string | undefined;
    productSurfaceUpdate?: ProductSurfaceUpdate | undefined;
}
interface HeartbeatResponse {
    /** Allows clients to find out how delayed they are WRT to true server time. Can detect old devices that do not have synced clocks. */
    serverTime: string | undefined;
}
interface SubscribeToChannel {
    userish: ConnectedId | undefined;
    channel: Channel | undefined;
    authToken?: string | undefined;
}
interface SubscribeToChannelBatch {
    channels: SubscribeToChannel[];
}
interface UnsubscribeFromChannel {
    userish: ConnectedId | undefined;
    channel: Channel | undefined;
}
/**
 * This is a message that is sent by a 3rd party developer
 * that includes an arbitrary body. Used for app developer things.
 */
interface AppMessage {
    /** If this packet was sent from another user's browser, this is the user id it came from. */
    fromUserId?: string | undefined;
    /** this is true if the event is sent with your server side secret api key. */
    isTrusted: boolean;
    /** an arbitrary payload of data. */
    json: string;
}
/** To send a message from an user as an app developer, use this message. */
interface BroadcastAppMessage {
    /** String encoded JSON object that you want to send from the client. */
    json: string;
    /** Target channel */
    channel: Channel | undefined;
}
interface SendToTargetRequest {
    target: string;
    /** @deprecated */
    message: WebsocketMessageServerToClient | undefined;
    /** Pass the message as a WebsocketMessageServerToClient proto serialized to bytes. */
    messageBytes: Uint8Array;
}
interface SendToTargetResponse {
    wasTargetConnected: boolean;
}
interface SendToTargetsRequest {
    targets: string[];
    /** @deprecated */
    message: WebsocketMessageServerToClient | undefined;
    /** Pass the message as a WebsocketMessageServerToClient proto serialized to bytes. */
    messageBytes: Uint8Array;
}
interface SendToTargetsResponse {
    wasTargetConnectedMap: {
        [key: string]: boolean;
    };
}
interface SendToTargetsResponse_WasTargetConnectedMapEntry {
    key: string;
    value: boolean;
}
interface BatchSendToTargetRequest {
    requests: SendToTargetRequest[];
}
interface BatchSendToTargetResponse {
}
interface TerminateTargetsRequest {
    targets: string[];
}
interface TerminateTargetsResponse {
}
/**
 * A command enum that the websocket server receives via GRPC
 * and internally fans out to each horizontal shard
 */
interface WebsocketServerCommandRequest {
    clearCache?: ClearCacheRequest | undefined;
}
interface WebsocketServerCommandResponse {
    success: boolean;
    receivedCount: number;
}
/** This is returned from rails when the websocket server wishes to fetch cachable items via http */
interface BatchGetItemsResponse {
    items: BatchGetItemsResponse_Item[];
}
interface BatchGetItemsResponse_Item {
    id: string;
    websocketMessageBytes: Uint8Array;
}
/** Sent from a client to instruct the websocket server to send it the data for a certain set of items again. */
interface RequestItemsBatchRequest {
    items: RequestItemsBatchRequest_Item[];
}
interface RequestItemsBatchRequest_Item {
    id: string;
    type: ResourceType;
}
interface ClearCacheRequest {
    ids: string[];
    clearAll?: boolean | undefined;
    cacheType?: ResourceType | undefined;
}
interface WebsocketService {
    SendToTarget(request: SendToTargetRequest): Promise<SendToTargetResponse>;
    SendToTargets(request: SendToTargetsRequest): Promise<SendToTargetsResponse>;
    BatchSendToTarget(request: BatchSendToTargetRequest): Promise<BatchSendToTargetResponse>;
    TerminateTargets(request: TerminateTargetsRequest): Promise<TerminateTargetsResponse>;
    WebsocketServerCommand(request: WebsocketServerCommandRequest): Promise<WebsocketServerCommandResponse>;
}

type index_common_AccessPass = AccessPass;
type index_common_AccessPassActivityItem = AccessPassActivityItem;
type index_common_AccessPassExperience = AccessPassExperience;
type index_common_AccessPassExperienceSection = AccessPassExperienceSection;
declare const index_common_AccessPassExperience_UpsellType: typeof AccessPassExperience_UpsellType;
type index_common_AccessPassMember = AccessPassMember;
type index_common_AccessPassReview = AccessPassReview;
declare const index_common_AccessPass_AccessPassType: typeof AccessPass_AccessPassType;
declare const index_common_AccessPass_Visibility: typeof AccessPass_Visibility;
declare const index_common_AccessType: typeof AccessType;
type index_common_ActiveUserBucket = ActiveUserBucket;
declare const index_common_ActiveUserBucket_UserBucketType: typeof ActiveUserBucket_UserBucketType;
type index_common_ActiveUsersInBucket = ActiveUsersInBucket;
type index_common_ActiveUsersInBucket_UserData = ActiveUsersInBucket_UserData;
type index_common_App = App;
type index_common_AppBuild = AppBuild;
declare const index_common_AppBuild_Status: typeof AppBuild_Status;
type index_common_AppMessage = AppMessage;
declare const index_common_AppViewType: typeof AppViewType;
type index_common_BatchGetItemsResponse = BatchGetItemsResponse;
type index_common_BatchGetItemsResponse_Item = BatchGetItemsResponse_Item;
type index_common_BatchSendToTargetRequest = BatchSendToTargetRequest;
type index_common_BatchSendToTargetResponse = BatchSendToTargetResponse;
type index_common_Bot = Bot;
type index_common_BotExperienceSection = BotExperienceSection;
type index_common_BroadcastAppMessage = BroadcastAppMessage;
type index_common_BroadcastRequest = BroadcastRequest;
type index_common_BroadcastResponse = BroadcastResponse;
type index_common_BusinessActivityEvent = BusinessActivityEvent;
declare const index_common_BusinessActivityEvent_EventType: typeof BusinessActivityEvent_EventType;
type index_common_CfLocation = CfLocation;
type index_common_Channel = Channel;
type index_common_ChannelSubscriptionState = ChannelSubscriptionState;
declare const index_common_ChannelSubscriptionState_DisconnectionReason: typeof ChannelSubscriptionState_DisconnectionReason;
declare const index_common_Channel_Type: typeof Channel_Type;
type index_common_ClearCacheRequest = ClearCacheRequest;
type index_common_ConnectedId = ConnectedId;
declare const index_common_ConnectedId_Type: typeof ConnectedId_Type;
type index_common_DiscoveryAccessPassLiveData = DiscoveryAccessPassLiveData;
type index_common_Entry = Entry;
declare const index_common_Entry_EntryStatus: typeof Entry_EntryStatus;
type index_common_FeedChatFeed = FeedChatFeed;
declare const index_common_FeedChatFeed_MemberPermissionType: typeof FeedChatFeed_MemberPermissionType;
type index_common_FeedContentItem = FeedContentItem;
type index_common_FeedContentItem_GiphyGif = FeedContentItem_GiphyGif;
type index_common_FeedDmsFeed = FeedDmsFeed;
type index_common_FeedDmsFeedMember = FeedDmsFeedMember;
declare const index_common_FeedDmsFeedMember_DmsFeedMemberStatus: typeof FeedDmsFeedMember_DmsFeedMemberStatus;
declare const index_common_FeedDmsFeedMember_NotificationPreference: typeof FeedDmsFeedMember_NotificationPreference;
type index_common_FeedDmsPost = FeedDmsPost;
type index_common_FeedDmsPost_DocumentAttachment = FeedDmsPost_DocumentAttachment;
type index_common_FeedDmsPost_GiphyGif = FeedDmsPost_GiphyGif;
type index_common_FeedDmsPost_ImageAttachment = FeedDmsPost_ImageAttachment;
type index_common_FeedDmsPost_LinkEmbed = FeedDmsPost_LinkEmbed;
declare const index_common_FeedDmsPost_MessageType: typeof FeedDmsPost_MessageType;
type index_common_FeedDmsPost_PostAttachment = FeedDmsPost_PostAttachment;
type index_common_FeedDmsPost_ReactionCount = FeedDmsPost_ReactionCount;
type index_common_FeedDmsPost_ReactionCounts = FeedDmsPost_ReactionCounts;
type index_common_FeedDmsPost_ReactionCounts_CountsEntry = FeedDmsPost_ReactionCounts_CountsEntry;
type index_common_FeedDmsPost_VideoAttachment = FeedDmsPost_VideoAttachment;
type index_common_FeedDmsUnreadBadgeUpdate = FeedDmsUnreadBadgeUpdate;
type index_common_FeedEntity = FeedEntity;
type index_common_FeedForumFeed = FeedForumFeed;
declare const index_common_FeedForumFeed_EmailNotificationPreferenceType: typeof FeedForumFeed_EmailNotificationPreferenceType;
declare const index_common_FeedForumFeed_LayoutType: typeof FeedForumFeed_LayoutType;
declare const index_common_FeedForumFeed_MemberPermissionType: typeof FeedForumFeed_MemberPermissionType;
type index_common_FeedForumPost = FeedForumPost;
declare const index_common_FeedForumPost_ForumPostType: typeof FeedForumPost_ForumPostType;
type index_common_FeedForumPost_GiphyGif = FeedForumPost_GiphyGif;
type index_common_FeedForumPost_LineItem = FeedForumPost_LineItem;
type index_common_FeedForumPost_LinkEmbed = FeedForumPost_LinkEmbed;
type index_common_FeedForumPost_ReactionCount = FeedForumPost_ReactionCount;
type index_common_FeedForumPost_ReactionCounts = FeedForumPost_ReactionCounts;
type index_common_FeedForumPost_ReactionCounts_CountsEntry = FeedForumPost_ReactionCounts_CountsEntry;
type index_common_FeedLivestreamFeed = FeedLivestreamFeed;
declare const index_common_FeedLivestreamFeed_MemberPermissionType: typeof FeedLivestreamFeed_MemberPermissionType;
type index_common_FeedLivestreamFeed_MetadataEntry = FeedLivestreamFeed_MetadataEntry;
type index_common_FeedMutedUser = FeedMutedUser;
type index_common_FeedPostReactionCountUpdate = FeedPostReactionCountUpdate;
type index_common_FeedReaction = FeedReaction;
declare const index_common_FeedReaction_ReactionType: typeof FeedReaction_ReactionType;
type index_common_FeedService = FeedService;
type index_common_FeedSyncError = FeedSyncError;
type index_common_FeedUser = FeedUser;
type index_common_FileAttachment = FileAttachment;
type index_common_FileAttachment_Audio = FileAttachment_Audio;
type index_common_FileAttachment_GenericFile = FileAttachment_GenericFile;
type index_common_FileAttachment_Image = FileAttachment_Image;
type index_common_FileAttachment_Video = FileAttachment_Video;
type index_common_GetActiveUsersInBucketBatchRequest = GetActiveUsersInBucketBatchRequest;
type index_common_GetActiveUsersInBucketBatchRequest_Request = GetActiveUsersInBucketBatchRequest_Request;
type index_common_GetActiveUsersInBucketBatchResponse = GetActiveUsersInBucketBatchResponse;
type index_common_GetTopExperiencesByActiveUsersRequest = GetTopExperiencesByActiveUsersRequest;
declare const index_common_GetTopExperiencesByActiveUsersRequest_AppFilter: typeof GetTopExperiencesByActiveUsersRequest_AppFilter;
type index_common_GetTopExperiencesByActiveUsersResponse = GetTopExperiencesByActiveUsersResponse;
type index_common_GetTopExperiencesByActiveUsersResponse_ExperienceItem = GetTopExperiencesByActiveUsersResponse_ExperienceItem;
type index_common_GetUserLastSeenAtBatchRequest = GetUserLastSeenAtBatchRequest;
type index_common_GetUserLastSeenAtBatchResponse = GetUserLastSeenAtBatchResponse;
type index_common_GetUserLastSeenAtBatchResponse_UserLastSeenAtResponse = GetUserLastSeenAtBatchResponse_UserLastSeenAtResponse;
type index_common_GetUserLastSeenAtBatchResponse_UsersLastSeenAtEntry = GetUserLastSeenAtBatchResponse_UsersLastSeenAtEntry;
type index_common_GetUserProductSurfacesBatchRequest = GetUserProductSurfacesBatchRequest;
type index_common_GetUserProductSurfacesBatchResponse = GetUserProductSurfacesBatchResponse;
type index_common_GetUserProductSurfacesBatchResponse_ProductSurfaceState = GetUserProductSurfacesBatchResponse_ProductSurfaceState;
type index_common_GetUserProductSurfacesBatchResponse_UserProductSurfacesEntry = GetUserProductSurfacesBatchResponse_UserProductSurfacesEntry;
type index_common_GoFetchExperienceList = GoFetchExperienceList;
type index_common_GoFetchNotifications = GoFetchNotifications;
declare const index_common_GoFetchNotifications_NotifyingEntityType: typeof GoFetchNotifications_NotifyingEntityType;
type index_common_GoFetchUserExperiences = GoFetchUserExperiences;
type index_common_Heartbeat = Heartbeat;
type index_common_HeartbeatResponse = HeartbeatResponse;
type index_common_MarkAsRead = MarkAsRead;
type index_common_MarketplaceStats = MarketplaceStats;
type index_common_Member = Member;
type index_common_Money = Money;
type index_common_MuxAsset = MuxAsset;
declare const index_common_MuxAsset_MuxAssetStatus: typeof MuxAsset_MuxAssetStatus;
type index_common_Notification = Notification;
type index_common_NotificationService = NotificationService;
type index_common_NotificationTopic = NotificationTopic;
type index_common_Plan = Plan;
declare const index_common_Plan_PlanType: typeof Plan_PlanType;
declare const index_common_Plan_ReleaseMethod: typeof Plan_ReleaseMethod;
declare const index_common_Plan_Visibility: typeof Plan_Visibility;
declare const index_common_Platform: typeof Platform;
type index_common_Poll = Poll;
type index_common_Poll_PollOption = Poll_PollOption;
type index_common_Position = Position;
declare const index_common_Position_Type: typeof Position_Type;
type index_common_PostEmbed = PostEmbed;
type index_common_PostReactionCount = PostReactionCount;
declare const index_common_PostReactionCount_ReactionType: typeof PostReactionCount_ReactionType;
type index_common_ProductSurface = ProductSurface;
type index_common_ProductSurfaceUpdate = ProductSurfaceUpdate;
declare const index_common_ProductSurface_DiscoverSection: typeof ProductSurface_DiscoverSection;
declare const index_common_ProductSurface_FeedTab: typeof ProductSurface_FeedTab;
declare const index_common_ProductSurface_SurfaceType: typeof ProductSurface_SurfaceType;
declare const index_common_ProductSurface_ViewContext: typeof ProductSurface_ViewContext;
type index_common_Purchase = Purchase;
declare const index_common_Purchase_ReleaseMethod: typeof Purchase_ReleaseMethod;
type index_common_Reconnect = Reconnect;
type index_common_ReloadClient = ReloadClient;
type index_common_RequestItemsBatchRequest = RequestItemsBatchRequest;
type index_common_RequestItemsBatchRequest_Item = RequestItemsBatchRequest_Item;
declare const index_common_ResourceType: typeof ResourceType;
type index_common_RichEmbed = RichEmbed;
type index_common_RichEmbedContainer = RichEmbedContainer;
type index_common_RichEmbed_Field = RichEmbed_Field;
type index_common_RichEmbed_Footer = RichEmbed_Footer;
type index_common_SendFeedEntityToUserRequest = SendFeedEntityToUserRequest;
type index_common_SendFeedEntityToUserResponse = SendFeedEntityToUserResponse;
type index_common_SendNotificationToUserRequest = SendNotificationToUserRequest;
type index_common_SendNotificationToUserResponse = SendNotificationToUserResponse;
type index_common_SendToTargetRequest = SendToTargetRequest;
type index_common_SendToTargetResponse = SendToTargetResponse;
type index_common_SendToTargetsRequest = SendToTargetsRequest;
type index_common_SendToTargetsResponse = SendToTargetsResponse;
type index_common_SendToTargetsResponse_WasTargetConnectedMapEntry = SendToTargetsResponse_WasTargetConnectedMapEntry;
type index_common_SubscribeToChannel = SubscribeToChannel;
type index_common_SubscribeToChannelBatch = SubscribeToChannelBatch;
type index_common_TerminateTargetsRequest = TerminateTargetsRequest;
type index_common_TerminateTargetsResponse = TerminateTargetsResponse;
type index_common_TypingIndicator = TypingIndicator;
type index_common_UnsubscribeFromChannel = UnsubscribeFromChannel;
type index_common_User = User;
type index_common_UserPresence = UserPresence;
type index_common_UserPresenceService = UserPresenceService;
type index_common_UserReferralMarketRate = UserReferralMarketRate;
type index_common_UserReferralMarketRates = UserReferralMarketRates;
type index_common_UserStat = UserStat;
declare const index_common_UserType: typeof UserType;
declare const index_common_User_PlatformRole: typeof User_PlatformRole;
type index_common_WebsocketMessageClientToServer = WebsocketMessageClientToServer;
type index_common_WebsocketMessageServerToClient = WebsocketMessageServerToClient;
type index_common_WebsocketServerCommandRequest = WebsocketServerCommandRequest;
type index_common_WebsocketServerCommandResponse = WebsocketServerCommandResponse;
type index_common_WebsocketService = WebsocketService;
declare namespace index_common {
  export { type index_common_AccessPass as AccessPass, type index_common_AccessPassActivityItem as AccessPassActivityItem, type index_common_AccessPassExperience as AccessPassExperience, type index_common_AccessPassExperienceSection as AccessPassExperienceSection, index_common_AccessPassExperience_UpsellType as AccessPassExperience_UpsellType, type index_common_AccessPassMember as AccessPassMember, type index_common_AccessPassReview as AccessPassReview, index_common_AccessPass_AccessPassType as AccessPass_AccessPassType, index_common_AccessPass_Visibility as AccessPass_Visibility, index_common_AccessType as AccessType, type index_common_ActiveUserBucket as ActiveUserBucket, index_common_ActiveUserBucket_UserBucketType as ActiveUserBucket_UserBucketType, type index_common_ActiveUsersInBucket as ActiveUsersInBucket, type index_common_ActiveUsersInBucket_UserData as ActiveUsersInBucket_UserData, type index_common_App as App, type index_common_AppBuild as AppBuild, index_common_AppBuild_Status as AppBuild_Status, type index_common_AppMessage as AppMessage, index_common_AppViewType as AppViewType, type index_common_BatchGetItemsResponse as BatchGetItemsResponse, type index_common_BatchGetItemsResponse_Item as BatchGetItemsResponse_Item, type index_common_BatchSendToTargetRequest as BatchSendToTargetRequest, type index_common_BatchSendToTargetResponse as BatchSendToTargetResponse, type index_common_Bot as Bot, type index_common_BotExperienceSection as BotExperienceSection, type index_common_BroadcastAppMessage as BroadcastAppMessage, type index_common_BroadcastRequest as BroadcastRequest, type index_common_BroadcastResponse as BroadcastResponse, type index_common_BusinessActivityEvent as BusinessActivityEvent, index_common_BusinessActivityEvent_EventType as BusinessActivityEvent_EventType, type index_common_CfLocation as CfLocation, type index_common_Channel as Channel, type index_common_ChannelSubscriptionState as ChannelSubscriptionState, index_common_ChannelSubscriptionState_DisconnectionReason as ChannelSubscriptionState_DisconnectionReason, index_common_Channel_Type as Channel_Type, type index_common_ClearCacheRequest as ClearCacheRequest, type index_common_ConnectedId as ConnectedId, index_common_ConnectedId_Type as ConnectedId_Type, type index_common_DiscoveryAccessPassLiveData as DiscoveryAccessPassLiveData, type index_common_Entry as Entry, index_common_Entry_EntryStatus as Entry_EntryStatus, type index_common_FeedChatFeed as FeedChatFeed, index_common_FeedChatFeed_MemberPermissionType as FeedChatFeed_MemberPermissionType, type index_common_FeedContentItem as FeedContentItem, type index_common_FeedContentItem_GiphyGif as FeedContentItem_GiphyGif, type index_common_FeedDmsFeed as FeedDmsFeed, type index_common_FeedDmsFeedMember as FeedDmsFeedMember, index_common_FeedDmsFeedMember_DmsFeedMemberStatus as FeedDmsFeedMember_DmsFeedMemberStatus, index_common_FeedDmsFeedMember_NotificationPreference as FeedDmsFeedMember_NotificationPreference, type index_common_FeedDmsPost as FeedDmsPost, type index_common_FeedDmsPost_DocumentAttachment as FeedDmsPost_DocumentAttachment, type index_common_FeedDmsPost_GiphyGif as FeedDmsPost_GiphyGif, type index_common_FeedDmsPost_ImageAttachment as FeedDmsPost_ImageAttachment, type index_common_FeedDmsPost_LinkEmbed as FeedDmsPost_LinkEmbed, index_common_FeedDmsPost_MessageType as FeedDmsPost_MessageType, type index_common_FeedDmsPost_PostAttachment as FeedDmsPost_PostAttachment, type index_common_FeedDmsPost_ReactionCount as FeedDmsPost_ReactionCount, type index_common_FeedDmsPost_ReactionCounts as FeedDmsPost_ReactionCounts, type index_common_FeedDmsPost_ReactionCounts_CountsEntry as FeedDmsPost_ReactionCounts_CountsEntry, type index_common_FeedDmsPost_VideoAttachment as FeedDmsPost_VideoAttachment, type index_common_FeedDmsUnreadBadgeUpdate as FeedDmsUnreadBadgeUpdate, type index_common_FeedEntity as FeedEntity, type index_common_FeedForumFeed as FeedForumFeed, index_common_FeedForumFeed_EmailNotificationPreferenceType as FeedForumFeed_EmailNotificationPreferenceType, index_common_FeedForumFeed_LayoutType as FeedForumFeed_LayoutType, index_common_FeedForumFeed_MemberPermissionType as FeedForumFeed_MemberPermissionType, type index_common_FeedForumPost as FeedForumPost, index_common_FeedForumPost_ForumPostType as FeedForumPost_ForumPostType, type index_common_FeedForumPost_GiphyGif as FeedForumPost_GiphyGif, type index_common_FeedForumPost_LineItem as FeedForumPost_LineItem, type index_common_FeedForumPost_LinkEmbed as FeedForumPost_LinkEmbed, type index_common_FeedForumPost_ReactionCount as FeedForumPost_ReactionCount, type index_common_FeedForumPost_ReactionCounts as FeedForumPost_ReactionCounts, type index_common_FeedForumPost_ReactionCounts_CountsEntry as FeedForumPost_ReactionCounts_CountsEntry, type index_common_FeedLivestreamFeed as FeedLivestreamFeed, index_common_FeedLivestreamFeed_MemberPermissionType as FeedLivestreamFeed_MemberPermissionType, type index_common_FeedLivestreamFeed_MetadataEntry as FeedLivestreamFeed_MetadataEntry, type index_common_FeedMutedUser as FeedMutedUser, type index_common_FeedPostReactionCountUpdate as FeedPostReactionCountUpdate, type index_common_FeedReaction as FeedReaction, index_common_FeedReaction_ReactionType as FeedReaction_ReactionType, type index_common_FeedService as FeedService, type index_common_FeedSyncError as FeedSyncError, type index_common_FeedUser as FeedUser, type index_common_FileAttachment as FileAttachment, type index_common_FileAttachment_Audio as FileAttachment_Audio, type index_common_FileAttachment_GenericFile as FileAttachment_GenericFile, type index_common_FileAttachment_Image as FileAttachment_Image, type index_common_FileAttachment_Video as FileAttachment_Video, type index_common_GetActiveUsersInBucketBatchRequest as GetActiveUsersInBucketBatchRequest, type index_common_GetActiveUsersInBucketBatchRequest_Request as GetActiveUsersInBucketBatchRequest_Request, type index_common_GetActiveUsersInBucketBatchResponse as GetActiveUsersInBucketBatchResponse, type index_common_GetTopExperiencesByActiveUsersRequest as GetTopExperiencesByActiveUsersRequest, index_common_GetTopExperiencesByActiveUsersRequest_AppFilter as GetTopExperiencesByActiveUsersRequest_AppFilter, type index_common_GetTopExperiencesByActiveUsersResponse as GetTopExperiencesByActiveUsersResponse, type index_common_GetTopExperiencesByActiveUsersResponse_ExperienceItem as GetTopExperiencesByActiveUsersResponse_ExperienceItem, type index_common_GetUserLastSeenAtBatchRequest as GetUserLastSeenAtBatchRequest, type index_common_GetUserLastSeenAtBatchResponse as GetUserLastSeenAtBatchResponse, type index_common_GetUserLastSeenAtBatchResponse_UserLastSeenAtResponse as GetUserLastSeenAtBatchResponse_UserLastSeenAtResponse, type index_common_GetUserLastSeenAtBatchResponse_UsersLastSeenAtEntry as GetUserLastSeenAtBatchResponse_UsersLastSeenAtEntry, type index_common_GetUserProductSurfacesBatchRequest as GetUserProductSurfacesBatchRequest, type index_common_GetUserProductSurfacesBatchResponse as GetUserProductSurfacesBatchResponse, type index_common_GetUserProductSurfacesBatchResponse_ProductSurfaceState as GetUserProductSurfacesBatchResponse_ProductSurfaceState, type index_common_GetUserProductSurfacesBatchResponse_UserProductSurfacesEntry as GetUserProductSurfacesBatchResponse_UserProductSurfacesEntry, type index_common_GoFetchExperienceList as GoFetchExperienceList, type index_common_GoFetchNotifications as GoFetchNotifications, index_common_GoFetchNotifications_NotifyingEntityType as GoFetchNotifications_NotifyingEntityType, type index_common_GoFetchUserExperiences as GoFetchUserExperiences, type index_common_Heartbeat as Heartbeat, type index_common_HeartbeatResponse as HeartbeatResponse, type index_common_MarkAsRead as MarkAsRead, type index_common_MarketplaceStats as MarketplaceStats, type index_common_Member as Member, type index_common_Money as Money, type index_common_MuxAsset as MuxAsset, index_common_MuxAsset_MuxAssetStatus as MuxAsset_MuxAssetStatus, type index_common_Notification as Notification, type index_common_NotificationService as NotificationService, type index_common_NotificationTopic as NotificationTopic, type index_common_Plan as Plan, index_common_Plan_PlanType as Plan_PlanType, index_common_Plan_ReleaseMethod as Plan_ReleaseMethod, index_common_Plan_Visibility as Plan_Visibility, index_common_Platform as Platform, type index_common_Poll as Poll, type index_common_Poll_PollOption as Poll_PollOption, type index_common_Position as Position, index_common_Position_Type as Position_Type, type index_common_PostEmbed as PostEmbed, type index_common_PostReactionCount as PostReactionCount, index_common_PostReactionCount_ReactionType as PostReactionCount_ReactionType, type index_common_ProductSurface as ProductSurface, type index_common_ProductSurfaceUpdate as ProductSurfaceUpdate, index_common_ProductSurface_DiscoverSection as ProductSurface_DiscoverSection, index_common_ProductSurface_FeedTab as ProductSurface_FeedTab, index_common_ProductSurface_SurfaceType as ProductSurface_SurfaceType, index_common_ProductSurface_ViewContext as ProductSurface_ViewContext, type index_common_Purchase as Purchase, index_common_Purchase_ReleaseMethod as Purchase_ReleaseMethod, type index_common_Reconnect as Reconnect, type index_common_ReloadClient as ReloadClient, type index_common_RequestItemsBatchRequest as RequestItemsBatchRequest, type index_common_RequestItemsBatchRequest_Item as RequestItemsBatchRequest_Item, index_common_ResourceType as ResourceType, type index_common_RichEmbed as RichEmbed, type index_common_RichEmbedContainer as RichEmbedContainer, type index_common_RichEmbed_Field as RichEmbed_Field, type index_common_RichEmbed_Footer as RichEmbed_Footer, type index_common_SendFeedEntityToUserRequest as SendFeedEntityToUserRequest, type index_common_SendFeedEntityToUserResponse as SendFeedEntityToUserResponse, type index_common_SendNotificationToUserRequest as SendNotificationToUserRequest, type index_common_SendNotificationToUserResponse as SendNotificationToUserResponse, type index_common_SendToTargetRequest as SendToTargetRequest, type index_common_SendToTargetResponse as SendToTargetResponse, type index_common_SendToTargetsRequest as SendToTargetsRequest, type index_common_SendToTargetsResponse as SendToTargetsResponse, type index_common_SendToTargetsResponse_WasTargetConnectedMapEntry as SendToTargetsResponse_WasTargetConnectedMapEntry, type index_common_SubscribeToChannel as SubscribeToChannel, type index_common_SubscribeToChannelBatch as SubscribeToChannelBatch, type index_common_TerminateTargetsRequest as TerminateTargetsRequest, type index_common_TerminateTargetsResponse as TerminateTargetsResponse, type index_common_TypingIndicator as TypingIndicator, type index_common_UnsubscribeFromChannel as UnsubscribeFromChannel, type index_common_User as User, type index_common_UserPresence as UserPresence, type index_common_UserPresenceService as UserPresenceService, type index_common_UserReferralMarketRate as UserReferralMarketRate, type index_common_UserReferralMarketRates as UserReferralMarketRates, type index_common_UserStat as UserStat, index_common_UserType as UserType, index_common_User_PlatformRole as User_PlatformRole, type index_common_WebsocketMessageClientToServer as WebsocketMessageClientToServer, type index_common_WebsocketMessageServerToClient as WebsocketMessageServerToClient, type index_common_WebsocketServerCommandRequest as WebsocketServerCommandRequest, type index_common_WebsocketServerCommandResponse as WebsocketServerCommandResponse, type index_common_WebsocketService as WebsocketService };
}

/**
 * A Timestamp represents a point in time independent of any time zone or local
 * calendar, encoded as a count of seconds and fractions of seconds at
 * nanosecond resolution. The count is relative to an epoch at UTC midnight on
 * January 1, 1970, in the proleptic Gregorian calendar which extends the
 * Gregorian calendar backwards to year one.
 *
 * All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
 * second table is needed for interpretation, using a [24-hour linear
 * smear](https://developers.google.com/time/smear).
 *
 * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
 * restricting to that range, we ensure that we can convert to and from [RFC
 * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
 *
 * # Examples
 *
 * Example 1: Compute Timestamp from POSIX `time()`.
 *
 *     Timestamp timestamp;
 *     timestamp.set_seconds(time(NULL));
 *     timestamp.set_nanos(0);
 *
 * Example 2: Compute Timestamp from POSIX `gettimeofday()`.
 *
 *     struct timeval tv;
 *     gettimeofday(&tv, NULL);
 *
 *     Timestamp timestamp;
 *     timestamp.set_seconds(tv.tv_sec);
 *     timestamp.set_nanos(tv.tv_usec * 1000);
 *
 * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
 *
 *     FILETIME ft;
 *     GetSystemTimeAsFileTime(&ft);
 *     UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
 *
 *     // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
 *     // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
 *     Timestamp timestamp;
 *     timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
 *     timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
 *
 * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
 *
 *     long millis = System.currentTimeMillis();
 *
 *     Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
 *         .setNanos((int) ((millis % 1000) * 1000000)).build();
 *
 * Example 5: Compute Timestamp from Java `Instant.now()`.
 *
 *     Instant now = Instant.now();
 *
 *     Timestamp timestamp =
 *         Timestamp.newBuilder().setSeconds(now.getEpochSecond())
 *             .setNanos(now.getNano()).build();
 *
 * Example 6: Compute Timestamp from current time in Python.
 *
 *     timestamp = Timestamp()
 *     timestamp.GetCurrentTime()
 *
 * # JSON Mapping
 *
 * In JSON format, the Timestamp type is encoded as a string in the
 * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
 * format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
 * where {year} is always expressed using four digits while {month}, {day},
 * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
 * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
 * are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
 * is required. A proto3 JSON serializer should always use UTC (as indicated by
 * "Z") when printing the Timestamp type and a proto3 JSON parser should be
 * able to accept both UTC and other timezones (as indicated by an offset).
 *
 * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
 * 01:30 UTC on January 15, 2017.
 *
 * In JavaScript, one can convert a Date object to this format using the
 * standard
 * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
 * method. In Python, a standard `datetime.datetime` object can be converted
 * to this format using
 * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
 * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
 * the Joda Time's [`ISODateTimeFormat.dateTime()`](
 * http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()
 * ) to obtain a formatter capable of generating timestamps in this format.
 */
interface Timestamp {
    /**
     * Represents seconds of UTC time since Unix epoch
     * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
     * 9999-12-31T23:59:59Z inclusive.
     */
    seconds: number;
    /**
     * Non-negative fractions of a second at nanosecond resolution. Negative
     * second values with fractions must still have non-negative nanos values
     * that count forward in time. Must be from 0 to 999,999,999
     * inclusive.
     */
    nanos: number;
}

/**
 * A Duration represents a signed, fixed-length span of time represented
 * as a count of seconds and fractions of seconds at nanosecond
 * resolution. It is independent of any calendar and concepts like "day"
 * or "month". It is related to Timestamp in that the difference between
 * two Timestamp values is a Duration and it can be added or subtracted
 * from a Timestamp. Range is approximately +-10,000 years.
 *
 * # Examples
 *
 * Example 1: Compute Duration from two Timestamps in pseudo code.
 *
 *     Timestamp start = ...;
 *     Timestamp end = ...;
 *     Duration duration = ...;
 *
 *     duration.seconds = end.seconds - start.seconds;
 *     duration.nanos = end.nanos - start.nanos;
 *
 *     if (duration.seconds < 0 && duration.nanos > 0) {
 *       duration.seconds += 1;
 *       duration.nanos -= 1000000000;
 *     } else if (duration.seconds > 0 && duration.nanos < 0) {
 *       duration.seconds -= 1;
 *       duration.nanos += 1000000000;
 *     }
 *
 * Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
 *
 *     Timestamp start = ...;
 *     Duration duration = ...;
 *     Timestamp end = ...;
 *
 *     end.seconds = start.seconds + duration.seconds;
 *     end.nanos = start.nanos + duration.nanos;
 *
 *     if (end.nanos < 0) {
 *       end.seconds -= 1;
 *       end.nanos += 1000000000;
 *     } else if (end.nanos >= 1000000000) {
 *       end.seconds += 1;
 *       end.nanos -= 1000000000;
 *     }
 *
 * Example 3: Compute Duration from datetime.timedelta in Python.
 *
 *     td = datetime.timedelta(days=3, minutes=10)
 *     duration = Duration()
 *     duration.FromTimedelta(td)
 *
 * # JSON Mapping
 *
 * In JSON format, the Duration type is encoded as a string rather than an
 * object, where the string ends in the suffix "s" (indicating seconds) and
 * is preceded by the number of seconds, with nanoseconds expressed as
 * fractional seconds. For example, 3 seconds with 0 nanoseconds should be
 * encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
 * be expressed in JSON format as "3.000000001s", and 3 seconds and 1
 * microsecond should be expressed in JSON format as "3.000001s".
 */
interface Duration {
    /**
     * Signed seconds of the span of time. Must be from -315,576,000,000
     * to +315,576,000,000 inclusive. Note: these bounds are computed from:
     * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
     */
    seconds: number;
    /**
     * Signed fractions of a second at nanosecond resolution of the span
     * of time. Durations less than one second are represented with a 0
     * `seconds` field and a positive or negative `nanos` field. For durations
     * of one second or more, a non-zero value for the `nanos` field must be
     * of the same sign as the `seconds` field. Must be from -999,999,999
     * to +999,999,999 inclusive.
     */
    nanos: number;
}

/**
 * `NullValue` is a singleton enumeration to represent the null value for the
 * `Value` type union.
 *
 * The JSON representation for `NullValue` is JSON `null`.
 */
declare const NullValue: {
    /** NULL_VALUE - Null value. */
    readonly NULL_VALUE: "NULL_VALUE";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type NullValue = typeof NullValue[keyof typeof NullValue];
declare namespace NullValue {
    type NULL_VALUE = typeof NullValue.NULL_VALUE;
    type UNRECOGNIZED = typeof NullValue.UNRECOGNIZED;
}
/**
 * `Struct` represents a structured data value, consisting of fields
 * which map to dynamically typed values. In some languages, `Struct`
 * might be supported by a native representation. For example, in
 * scripting languages like JS a struct is represented as an
 * object. The details of that representation are described together
 * with the proto support for the language.
 *
 * The JSON representation for `Struct` is JSON object.
 */
interface Struct {
    /** Unordered map of dynamically typed values. */
    fields: {
        [key: string]: any | undefined;
    };
}
interface Struct_FieldsEntry {
    key: string;
    value: any | undefined;
}
/**
 * `Value` represents a dynamically typed value which can be either
 * null, a number, a string, a boolean, a recursive struct value, or a
 * list of values. A producer of value is expected to set one of these
 * variants. Absence of any variant indicates an error.
 *
 * The JSON representation for `Value` is JSON value.
 */
interface Value {
    /** Represents a null value. */
    nullValue?: NullValue | undefined;
    /** Represents a double value. */
    numberValue?: number | undefined;
    /** Represents a string value. */
    stringValue?: string | undefined;
    /** Represents a boolean value. */
    boolValue?: boolean | undefined;
    /** Represents a structured value. */
    structValue?: {
        [key: string]: any;
    } | undefined;
    /** Represents a repeated `Value`. */
    listValue?: Array<any> | undefined;
}
/**
 * `ListValue` is a wrapper around a repeated field of values.
 *
 * The JSON representation for `ListValue` is JSON array.
 */
interface ListValue {
    /** Repeated field of dynamically typed values. */
    values: any[];
}

type index_google_protobuf_Duration = Duration;
type index_google_protobuf_ListValue = ListValue;
declare const index_google_protobuf_NullValue: typeof NullValue;
type index_google_protobuf_Struct = Struct;
type index_google_protobuf_Struct_FieldsEntry = Struct_FieldsEntry;
type index_google_protobuf_Timestamp = Timestamp;
type index_google_protobuf_Value = Value;
declare namespace index_google_protobuf {
  export { type index_google_protobuf_Duration as Duration, type index_google_protobuf_ListValue as ListValue, index_google_protobuf_NullValue as NullValue, type index_google_protobuf_Struct as Struct, type index_google_protobuf_Struct_FieldsEntry as Struct_FieldsEntry, type index_google_protobuf_Timestamp as Timestamp, type index_google_protobuf_Value as Value };
}

declare namespace index_google {
  export { index_google_protobuf as protobuf };
}

type index_calendar_bookings_app_Availability = Availability;
type index_calendar_bookings_app_Booking = Booking;
declare namespace index_calendar_bookings_app {
  export type { index_calendar_bookings_app_Availability as Availability, index_calendar_bookings_app_Booking as Booking };
}

type index_bounties_app_Bounty = Bounty;
type index_bounties_app_BountySubmission = BountySubmission;
declare const index_bounties_app_BountySubmission_BountySubmissionStatus: typeof BountySubmission_BountySubmissionStatus;
declare const index_bounties_app_Bounty_BountyRewardUnit: typeof Bounty_BountyRewardUnit;
declare const index_bounties_app_Bounty_BountyStatus: typeof Bounty_BountyStatus;
declare namespace index_bounties_app {
  export { type index_bounties_app_Bounty as Bounty, type index_bounties_app_BountySubmission as BountySubmission, index_bounties_app_BountySubmission_BountySubmissionStatus as BountySubmission_BountySubmissionStatus, index_bounties_app_Bounty_BountyRewardUnit as Bounty_BountyRewardUnit, index_bounties_app_Bounty_BountyStatus as Bounty_BountyStatus };
}

type index_content_app_ContentDocument = ContentDocument;
declare namespace index_content_app {
  export type { index_content_app_ContentDocument as ContentDocument };
}

declare const index_content_rewards_app_ContentPlatform: typeof ContentPlatform;
type index_content_rewards_app_ContentRewardsCampaign = ContentRewardsCampaign;
declare const index_content_rewards_app_ContentRewardsCampaign_Category: typeof ContentRewardsCampaign_Category;
declare const index_content_rewards_app_ContentRewardsCampaign_ContentType: typeof ContentRewardsCampaign_ContentType;
declare const index_content_rewards_app_ContentRewardsCampaign_Status: typeof ContentRewardsCampaign_Status;
type index_content_rewards_app_ContentRewardsMessage = ContentRewardsMessage;
type index_content_rewards_app_ContentRewardsSubmission = ContentRewardsSubmission;
declare const index_content_rewards_app_ContentRewardsSubmission_Status: typeof ContentRewardsSubmission_Status;
declare namespace index_content_rewards_app {
  export { index_content_rewards_app_ContentPlatform as ContentPlatform, type index_content_rewards_app_ContentRewardsCampaign as ContentRewardsCampaign, index_content_rewards_app_ContentRewardsCampaign_Category as ContentRewardsCampaign_Category, index_content_rewards_app_ContentRewardsCampaign_ContentType as ContentRewardsCampaign_ContentType, index_content_rewards_app_ContentRewardsCampaign_Status as ContentRewardsCampaign_Status, type index_content_rewards_app_ContentRewardsMessage as ContentRewardsMessage, type index_content_rewards_app_ContentRewardsSubmission as ContentRewardsSubmission, index_content_rewards_app_ContentRewardsSubmission_Status as ContentRewardsSubmission_Status };
}

type index_courses_app_Course = Course;
declare namespace index_courses_app {
  export type { index_courses_app_Course as Course };
}

type index_events_app_Event = Event;
declare const index_events_app_Event_LocationType: typeof Event_LocationType;
declare const index_events_app_Event_RecurringRule: typeof Event_RecurringRule;
declare namespace index_events_app {
  export { type index_events_app_Event as Event, index_events_app_Event_LocationType as Event_LocationType, index_events_app_Event_RecurringRule as Event_RecurringRule };
}

type index_wheel_app_Prize = Prize;
type index_wheel_app_Spin = Spin;
declare const index_wheel_app_Spin_SpinStatus: typeof Spin_SpinStatus;
type index_wheel_app_Wheel = Wheel;
declare namespace index_wheel_app {
  export { type index_wheel_app_Prize as Prize, type index_wheel_app_Spin as Spin, index_wheel_app_Spin_SpinStatus as Spin_SpinStatus, type index_wheel_app_Wheel as Wheel };
}

type index_experience_BatchGetExperiencePreviewContentRequest = BatchGetExperiencePreviewContentRequest;
type index_experience_BatchGetExperiencePreviewContentResponse = BatchGetExperiencePreviewContentResponse;
type index_experience_BatchGetExperiencePreviewContentResponse_ExperiencePreviewContentResponse = BatchGetExperiencePreviewContentResponse_ExperiencePreviewContentResponse;
type index_experience_BountiesCard = BountiesCard;
type index_experience_CalendarBookingsCard = CalendarBookingsCard;
type index_experience_ChatCard = ChatCard;
type index_experience_ContentCard = ContentCard;
type index_experience_ContentRewardsCard = ContentRewardsCard;
type index_experience_CoursesCard = CoursesCard;
type index_experience_EventsCard = EventsCard;
type index_experience_Experience = Experience;
type index_experience_ForumCard = ForumCard;
type index_experience_GenericCard = GenericCard;
type index_experience_LivestreamingCard = LivestreamingCard;
type index_experience_PreviewContent = PreviewContent;
type index_experience_UserExperience = UserExperience;
type index_experience_WheelCard = WheelCard;
declare namespace index_experience {
  export type { index_experience_BatchGetExperiencePreviewContentRequest as BatchGetExperiencePreviewContentRequest, index_experience_BatchGetExperiencePreviewContentResponse as BatchGetExperiencePreviewContentResponse, index_experience_BatchGetExperiencePreviewContentResponse_ExperiencePreviewContentResponse as BatchGetExperiencePreviewContentResponse_ExperiencePreviewContentResponse, index_experience_BountiesCard as BountiesCard, index_experience_CalendarBookingsCard as CalendarBookingsCard, index_experience_ChatCard as ChatCard, index_experience_ContentCard as ContentCard, index_experience_ContentRewardsCard as ContentRewardsCard, index_experience_CoursesCard as CoursesCard, index_experience_EventsCard as EventsCard, index_experience_Experience as Experience, index_experience_ForumCard as ForumCard, index_experience_GenericCard as GenericCard, index_experience_LivestreamingCard as LivestreamingCard, index_experience_PreviewContent as PreviewContent, index_experience_UserExperience as UserExperience, index_experience_WheelCard as WheelCard };
}

type index_games_quizzes_AddQuestionsCommand = AddQuestionsCommand;
type index_games_quizzes_AnswerQuestionCommand = AnswerQuestionCommand;
type index_games_quizzes_ClientCommand = ClientCommand;
type index_games_quizzes_CreateGameCommand = CreateGameCommand;
type index_games_quizzes_GameState = GameState;
type index_games_quizzes_HostCommand = HostCommand;
declare const index_games_quizzes_HostCommand_StatusCommand: typeof HostCommand_StatusCommand;
type index_games_quizzes_IndividualAnswer = IndividualAnswer;
type index_games_quizzes_MultipleChoiceAggregateResult = MultipleChoiceAggregateResult;
type index_games_quizzes_MultipleChoiceAggregateResult_AnswerCountsEntry = MultipleChoiceAggregateResult_AnswerCountsEntry;
type index_games_quizzes_MultipleChoiceAnswer = MultipleChoiceAnswer;
type index_games_quizzes_MultipleChoiceQuestion = MultipleChoiceQuestion;
type index_games_quizzes_Question = Question;
type index_games_quizzes_QuestionAggregateResult = QuestionAggregateResult;
type index_games_quizzes_Quiz = Quiz;
declare const index_games_quizzes_QuizStatus: typeof QuizStatus;
declare namespace index_games_quizzes {
  export { type index_games_quizzes_AddQuestionsCommand as AddQuestionsCommand, type index_games_quizzes_AnswerQuestionCommand as AnswerQuestionCommand, type index_games_quizzes_ClientCommand as ClientCommand, type index_games_quizzes_CreateGameCommand as CreateGameCommand, type index_games_quizzes_GameState as GameState, type index_games_quizzes_HostCommand as HostCommand, index_games_quizzes_HostCommand_StatusCommand as HostCommand_StatusCommand, type index_games_quizzes_IndividualAnswer as IndividualAnswer, type index_games_quizzes_MultipleChoiceAggregateResult as MultipleChoiceAggregateResult, type index_games_quizzes_MultipleChoiceAggregateResult_AnswerCountsEntry as MultipleChoiceAggregateResult_AnswerCountsEntry, type index_games_quizzes_MultipleChoiceAnswer as MultipleChoiceAnswer, type index_games_quizzes_MultipleChoiceQuestion as MultipleChoiceQuestion, type index_games_quizzes_Question as Question, type index_games_quizzes_QuestionAggregateResult as QuestionAggregateResult, type index_games_quizzes_Quiz as Quiz, index_games_quizzes_QuizStatus as QuizStatus };
}

type index_games_ClientToServerMessage = ClientToServerMessage;
type index_games_Game = Game;
type index_games_GameParticipants = GameParticipants;
type index_games_JoinGameCommand = JoinGameCommand;
type index_games_LeaveGameCommand = LeaveGameCommand;
type index_games_ServerToClientMessage = ServerToClientMessage;
type index_games_UserGameState = UserGameState;
type index_games_UserLeftGameEvent = UserLeftGameEvent;
declare namespace index_games {
  export { type index_games_ClientToServerMessage as ClientToServerMessage, type index_games_Game as Game, type index_games_GameParticipants as GameParticipants, type index_games_JoinGameCommand as JoinGameCommand, type index_games_LeaveGameCommand as LeaveGameCommand, type index_games_ServerToClientMessage as ServerToClientMessage, type index_games_UserGameState as UserGameState, type index_games_UserLeftGameEvent as UserLeftGameEvent, index_games_quizzes as quizzes };
}

declare const PaymentMethod: {
    readonly PAYMENT_METHOD_UNSPECIFIED: "PAYMENT_METHOD_UNSPECIFIED";
    readonly PAYMENT_METHOD_ALL_PAYMENT_METHODS: "PAYMENT_METHOD_ALL_PAYMENT_METHODS";
    readonly PAYMENT_METHOD_ALL_CARD_AND_FINANCING: "PAYMENT_METHOD_ALL_CARD_AND_FINANCING";
    readonly PAYMENT_METHOD_ALL_FINANCING: "PAYMENT_METHOD_ALL_FINANCING";
    readonly PAYMENT_METHOD_SPLITIT: "PAYMENT_METHOD_SPLITIT";
    readonly PAYMENT_METHOD_SEZZLE: "PAYMENT_METHOD_SEZZLE";
    readonly PAYMENT_METHOD_AFTERPAY_CLEARPAY: "PAYMENT_METHOD_AFTERPAY_CLEARPAY";
    readonly PAYMENT_METHOD_ZIP: "PAYMENT_METHOD_ZIP";
    readonly PAYMENT_METHOD_KLARNA: "PAYMENT_METHOD_KLARNA";
    readonly PAYMENT_METHOD_AFFIRM: "PAYMENT_METHOD_AFFIRM";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type PaymentMethod = typeof PaymentMethod[keyof typeof PaymentMethod];
declare namespace PaymentMethod {
    type PAYMENT_METHOD_UNSPECIFIED = typeof PaymentMethod.PAYMENT_METHOD_UNSPECIFIED;
    type PAYMENT_METHOD_ALL_PAYMENT_METHODS = typeof PaymentMethod.PAYMENT_METHOD_ALL_PAYMENT_METHODS;
    type PAYMENT_METHOD_ALL_CARD_AND_FINANCING = typeof PaymentMethod.PAYMENT_METHOD_ALL_CARD_AND_FINANCING;
    type PAYMENT_METHOD_ALL_FINANCING = typeof PaymentMethod.PAYMENT_METHOD_ALL_FINANCING;
    type PAYMENT_METHOD_SPLITIT = typeof PaymentMethod.PAYMENT_METHOD_SPLITIT;
    type PAYMENT_METHOD_SEZZLE = typeof PaymentMethod.PAYMENT_METHOD_SEZZLE;
    type PAYMENT_METHOD_AFTERPAY_CLEARPAY = typeof PaymentMethod.PAYMENT_METHOD_AFTERPAY_CLEARPAY;
    type PAYMENT_METHOD_ZIP = typeof PaymentMethod.PAYMENT_METHOD_ZIP;
    type PAYMENT_METHOD_KLARNA = typeof PaymentMethod.PAYMENT_METHOD_KLARNA;
    type PAYMENT_METHOD_AFFIRM = typeof PaymentMethod.PAYMENT_METHOD_AFFIRM;
    type UNRECOGNIZED = typeof PaymentMethod.UNRECOGNIZED;
}
declare const DisputeMetric: {
    readonly DISPUTE_METRIC_UNSPECIFIED: "DISPUTE_METRIC_UNSPECIFIED";
    readonly DISPUTE_RATE: "DISPUTE_RATE";
    readonly TOTAL_TRANSACTIONS: "TOTAL_TRANSACTIONS";
    readonly DISPUTED_TRANSACTIONS: "DISPUTED_TRANSACTIONS";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type DisputeMetric = typeof DisputeMetric[keyof typeof DisputeMetric];
declare namespace DisputeMetric {
    type DISPUTE_METRIC_UNSPECIFIED = typeof DisputeMetric.DISPUTE_METRIC_UNSPECIFIED;
    type DISPUTE_RATE = typeof DisputeMetric.DISPUTE_RATE;
    type TOTAL_TRANSACTIONS = typeof DisputeMetric.TOTAL_TRANSACTIONS;
    type DISPUTED_TRANSACTIONS = typeof DisputeMetric.DISPUTED_TRANSACTIONS;
    type UNRECOGNIZED = typeof DisputeMetric.UNRECOGNIZED;
}
declare const LogicalOperator: {
    readonly LOGICAL_OPERATOR_UNSPECIFIED: "LOGICAL_OPERATOR_UNSPECIFIED";
    readonly AND: "AND";
    readonly OR: "OR";
    readonly UNRECOGNIZED: "UNRECOGNIZED";
};
type LogicalOperator = typeof LogicalOperator[keyof typeof LogicalOperator];
declare namespace LogicalOperator {
    type LOGICAL_OPERATOR_UNSPECIFIED = typeof LogicalOperator.LOGICAL_OPERATOR_UNSPECIFIED;
    type AND = typeof LogicalOperator.AND;
    type OR = typeof LogicalOperator.OR;
    type UNRECOGNIZED = typeof LogicalOperator.UNRECOGNIZED;
}
interface MetricFilter {
    paymentMethod: PaymentMethod;
    metric: DisputeMetric;
    floatRange?: FloatRange | undefined;
    intRange?: IntRange | undefined;
}
interface QueryBnplDisputeRatesRequest {
    /** Format: "biz_abcABC" */
    bizIds: string[];
    metricFilters: MetricFilter[];
    /** Defaults to AND if unspecified */
    metricFiltersOperator: LogicalOperator;
    limit: number;
    offset: number;
}
interface QueryBnplDisputeRatesResponse {
    records: BnplDisputeRatesRecord[];
    totalCount: number;
}
interface BnplDisputeRatesRecord {
    bizId: string;
    paymentMethodMetrics: PaymentMethodMetrics[];
}
interface PaymentMethodMetrics {
    paymentMethod: PaymentMethod;
    disputeRate: number;
    totalTransactions: number;
    disputedTransactions: number;
}
interface FloatRange {
    min?: number | undefined;
    max?: number | undefined;
}
interface IntRange {
    min?: number | undefined;
    max?: number | undefined;
}

type index_data_platform_BnplDisputeRatesRecord = BnplDisputeRatesRecord;
declare const index_data_platform_DisputeMetric: typeof DisputeMetric;
type index_data_platform_FloatRange = FloatRange;
type index_data_platform_IntRange = IntRange;
declare const index_data_platform_LogicalOperator: typeof LogicalOperator;
type index_data_platform_MetricFilter = MetricFilter;
declare const index_data_platform_PaymentMethod: typeof PaymentMethod;
type index_data_platform_PaymentMethodMetrics = PaymentMethodMetrics;
type index_data_platform_QueryBnplDisputeRatesRequest = QueryBnplDisputeRatesRequest;
type index_data_platform_QueryBnplDisputeRatesResponse = QueryBnplDisputeRatesResponse;
declare namespace index_data_platform {
  export { type index_data_platform_BnplDisputeRatesRecord as BnplDisputeRatesRecord, index_data_platform_DisputeMetric as DisputeMetric, type index_data_platform_FloatRange as FloatRange, type index_data_platform_IntRange as IntRange, index_data_platform_LogicalOperator as LogicalOperator, type index_data_platform_MetricFilter as MetricFilter, index_data_platform_PaymentMethod as PaymentMethod, type index_data_platform_PaymentMethodMetrics as PaymentMethodMetrics, type index_data_platform_QueryBnplDisputeRatesRequest as QueryBnplDisputeRatesRequest, type index_data_platform_QueryBnplDisputeRatesResponse as QueryBnplDisputeRatesResponse };
}

declare namespace index {
  export { index_bounties_app as bounties_app, index_calendar_bookings_app as calendar_bookings_app, index_common as common, index_content_app as content_app, index_content_rewards_app as content_rewards_app, index_courses_app as courses_app, index_data_platform as data_platform, index_events_app as events_app, index_experience as experience, index_games as games, index_google as google, index_wheel_app as wheel_app };
}

declare function getUserToken(token: string): string;
declare function getUserToken(tokenOrHeadersOrRequest: string | Headers | Request | null | undefined): string | null;
interface UserTokenPayload {
    userId: string;
    appId: string;
}
interface VerifyUserTokenOptions<DontThrow extends boolean = false> {
    appId: string;
    publicKey?: string;
    dontThrow?: DontThrow;
}
declare function makeUserTokenVerifier<DontThrow extends boolean = false>(options: VerifyUserTokenOptions<DontThrow>): <DT extends boolean = DontThrow>(tokenOrHeadersOrRequest: string | Headers | Request | null | undefined, overrideOptions?: Partial<VerifyUserTokenOptions<DT>>) => Promise<DT extends true ? UserTokenPayload | null : UserTokenPayload>;
declare function verifyUserToken<DontThrow extends boolean = false>(tokenOrHeadersOrRequest: string | Headers | Request | null | undefined, overrideOptions?: Partial<VerifyUserTokenOptions<DontThrow>>): Promise<Promise<DontThrow extends true ? UserTokenPayload | null : UserTokenPayload>>;

interface CustomFieldResponse {
    id: string;
    custom_field_id: string;
    value?: string | null;
}
interface MembershipData {
    id: string;
    product_id: string;
    user_id?: string | null;
    plan_id: string;
    page_id: string;
    created_at: number;
    expires_at?: number | null;
    renewal_period_start?: number | null;
    renewal_period_end?: number | null;
    quantity: number;
    status: string;
    valid: boolean;
    cancel_at_period_end: boolean;
    license_key?: string | null;
    metadata?: Record<string, unknown> | null;
    checkout_id?: string | null;
    affiliate_username?: string | null;
    manage_url: string;
    company_buyer_id?: string | null;
    marketplace: boolean;
    custom_field_responses: CustomFieldResponse[];
}
interface ReceiptData {
    id: string;
    membership_id?: string | null;
    product_id?: string | null;
    user_id?: string | null;
    plan_id?: string | null;
    company_id: string;
    line_item_id?: string | null;
    created_at: number;
    paid_at?: number | null;
    refunded_at?: number | null;
    last_payment_attempt?: number | null;
    next_payment_attempt?: number | null;
    status: string;
    subtotal: number;
    final_amount: number;
    amount_after_fees?: number | null;
    currency: string;
    refunded_amount?: number | null;
    payments_failed: number;
    checkout_id?: string | null;
    card_brand?: string | null;
    card_last_4?: string | null;
    funding_method?: string | null;
    wallet_type?: "apple_pay" | "google_pay" | "paypal" | "venmo" | null;
    calculated_statement_descriptor?: string | null;
    issuer_identification_number?: string | null;
    billing_usage_ids: string[];
    company_buyer_id?: string | null;
    payment_method_type?: string | null;
    metadata?: Record<string, unknown> | null;
}
interface RefundData {
    id: string;
    status: string;
    amount: number;
    currency: string;
    gateway_type: string;
    created_at: number;
    payment_id: string;
    payment: ReceiptData;
}
interface DisputeData {
    id: string;
    status: string;
    amount: number;
    currency: string;
    created_at: number;
    payment_id: string;
    payment: ReceiptData;
}
type WhopWebhookRequestBody = {
    action: "membership.went_valid" | "membership.went_invalid" | "membership.metadata_updated" | "membership.cancel_at_period_end_changed" | "membership.experience_claimed";
    data: MembershipData;
} | {
    action: "payment.succeeded" | "payment.failed" | "payment.pending" | "payment.affiliate_reward_created";
    data: ReceiptData;
} | {
    action: "refund.created" | "refund.updated";
    data: RefundData;
} | {
    action: "dispute.created" | "dispute.updated";
    data: DisputeData;
} | {
    action: "app_membership.went_valid" | "app_membership.went_invalid" | "app_membership.cancel_at_period_end_changed";
    data: MembershipData;
} | {
    action: "app_payment.succeeded" | "app_payment.failed" | "app_payment.pending";
    data: ReceiptData;
};

declare function makeWebhookValidator({ webhookSecret, signatureHeaderName, }: {
    webhookSecret: string;
    signatureHeaderName?: string | null;
}): (req: Request) => Promise<WhopWebhookRequestBody>;

type ReceivableWebsocketMessage = WebsocketMessageServerToClient;
type SendableWebsocketMessage = WebsocketMessageClientToServer;
type WebsocketStatus = "connected" | "disconnected" | "connecting";
type WebsocketMessageHandler = (message: ReceivableWebsocketMessage) => unknown;
type WebsocketStatusHandler = (status: WebsocketStatus) => unknown;
interface WhopWebsocketEvents {
    message: (message: ReceivableWebsocketMessage) => void;
    appMessage: (message: AppMessage) => void;
    connectionStatus: (status: WebsocketStatus) => void;
    connect: () => void;
    disconnect: () => void;
}
declare class WhopWebsocketClientBase extends TypedEmitter<WhopWebsocketEvents> {
    private websocket;
    private failedConnectionAttempts;
    private status;
    private wantsToBeConnected;
    protected makeWebsocket(): WebSocket;
    connect(): () => void;
    disconnect(): void;
    send(message: SendableWebsocketMessage): void;
    broadcast({ message, target, }: {
        message: string;
        target: WebsocketBroadcastTarget;
    }): void;
    private setStatus;
    private calculateBackoff;
}
type WebsocketBroadcastTarget = {
    experienceId: string;
} | {
    customId: string;
} | "everyone";

interface WebsocketClientOptionsClient {
    joinExperience?: string | string[] | null;
    joinCustom?: string | string[] | null;
    joinPublic?: string | string[] | null;
}
declare class WhopWebsocketClientBrowser extends WhopWebsocketClientBase {
    private options;
    constructor(options: WebsocketClientOptionsClient);
    protected makeWebsocket(): WebSocket;
}

interface WhopOAuthProfile {
    id: string;
    username?: string;
    email: string;
    profile_pic_url?: string;
}
/**
 * The authorization tokens returned from the Whop OAuth2 API.
 */
interface WhopOAuthTokens {
    /**
     * The primary access token for the user.
     */
    access_token: string;
    /**
     * The number of seconds until the access token expires.
     */
    expires_in: number;
    /**
     * The timestamp of when the access token was created (in s).
     */
    created_at: number;
}
/**
 * The OAuth2 class is used to interact with the Whop OAuth2 API.
 *
 * @see https://dev.whop.com/features/oauth-guide
 */
declare class WhopOAuth {
    /**
     * Your Whop app id. This can be found in your developer dashboard
     *
     * @see https://whop.com/dashboard/developer/
     */
    private readonly appId;
    /**
     * Your Whop app api key. This can be found in your developer dashboard
     *
     * @see https://whop.com/dashboard/developer/
     */
    private readonly appApiKey;
    /**
     * **optional** - The origin of the Whop API. This is used to make API requests to the Whop API.
     *
     * @default https://api.whop.com
     */
    private readonly apiOrigin;
    static readonly OAUTH_URL = "https://whop.com/oauth/";
    constructor(
    /**
     * Your Whop app id. This can be found in your developer dashboard
     *
     * @see https://whop.com/dashboard/developer/
     */
    appId: string, 
    /**
     * Your Whop app api key. This can be found in your developer dashboard
     *
     * @see https://whop.com/dashboard/developer/
     */
    appApiKey: string, 
    /**
     * **optional** - The origin of the Whop API. This is used to make API requests to the Whop API.
     *
     * @default https://api.whop.com
     */
    apiOrigin?: string);
    /**
     * Get an authorization url to start the OAuth2 flow.
     *
     * ```ts
     * const { url, state } = whopOAuth.getAuthorizationUrl({
     * 	redirectUri: "http://localhost:3000/api/oauth/callback",
     * 	scope: ["read_user"],
     * })
     * ```
     */
    getAuthorizationUrl({ state, redirectUri, scope, }: {
        /**
         * The state to be used in the OAuth2 flow. This is used to prevent CSRF attacks.
         *
         * **optional** - defaults to a random uuid
         */
        state?: string;
        /**
         * The redirect uri to be used in the OAuth2 flow. This is used to redirect the user back to your app after authorization.
         *
         * **NOTE** - the redirect uri you are using here must be defined in your app's settings in the developer dashboard.
         *
         * @see https://whop.com/dashboard/developer/
         */
        redirectUri: string | URL;
        /**
         * The scopes to be used in the OAuth2 flow. This is used to request permissions from the user.
         *
         * @see https://dev.whop.com/api-reference/graphql/scopes
         */
        scope?: AppValidScopes[];
    }): {
        /**
         * The url to redirect the user to for authorization
         */
        url: string;
        /**
         * The state to be used in the OAuth2 flow. This is used to prevent CSRF attacks.
         */
        state: string;
    };
    /**
     * Exchange a code for a token.
     *
     * ```ts
     * const authResponse = await whopOAuth.exchangeCode({
     * 	code: "1234",
     * 	redirectUri: "http://localhost:3000/api/oauth/callback",
     * })
     *
     * if (!authResponse.ok) {
     * 	throw new Error(`Failed to exchange code for token. Status: ${authResponse.code}`);
     * }
     *
     * const { access_token } = authResponse.tokens;
     * ```
     */
    exchangeCode({ code, redirectUri, }: {
        /**
         * The code you received when the user was redirected back to your app.
         */
        code: string;
        /**
         * The redirect uri you used when getting the authorization url.
         *
         * **NOTE** - this must be the same as the redirect uri you used when getting the authorization url.
         */
        redirectUri: string | URL;
    }): Promise<{
        ok: true;
        /**
         * The authorization token you received from the user to make request to the Whop API
         */
        tokens: WhopOAuthTokens;
    } | {
        ok: false;
        /**
         * The status code of the response
         */
        code: number;
        /**
         * The raw response from the Whop API
         */
        raw: Response;
    }>;
    /**
     * Get an Auth.js provider for the Whop OAuth2 API.
     *
     * Works with any Auth.js compatible client:
     * - [`next-auth`](https://www.npmjs.com/package/next-auth)
     * - [`@auth/qwik`](https://www.npmjs.com/package/@auth/qwik)
     * - [`@auth/sveltekit`](https://www.npmjs.com/package/@auth/sveltekit)
     * - [`@auth/express`](https://www.npmjs.com/package/@auth/express)
     * - etc.
     *
     * ```ts
     * const WhopProvider = whopOAuth.authJsProvider({
     * 	scope: ["read_user"],
     * })
     *
     * export const auth = Auth({
     *		providers: [WhopProvider],
     *	});
     * ```
     */
    authJsProvider({ scope, }: {
        /**
         * The scopes to be used in the OAuth2 flow. This is used to request permissions from the user.
         *
         * @see https://dev.whop.com/api-reference/graphql/scopes
         */
        scope?: AppValidScopes[];
    }): OAuth2Config<WhopOAuthProfile>;
}

/**
 * SDK options for server side use
 */
interface WhopServerSdkOptions {
    /** The API key to use for API calls */
    appApiKey: string;
    /** Required when using the oauth module. Defaults to `NEXT_PUBLIC_WHOP_APP_ID` */
    appId: string;
    /** Use this to make the API calls on behalf of a user */
    onBehalfOfUserId?: string;
    /** Use this to make the API calls on behalf of a company */
    companyId?: string;
    /** the origin of the API */
    apiOrigin?: string;
    /** the path of the API */
    apiPath?: string;
    /** the origin of the server to server websocket api */
    websocketOrigin?: string;
}
declare function BaseWhopServerSdk(options: WhopServerSdkOptions, uploadFile: ReturnType<typeof makeUploadAttachmentFunction>): {
    attachments: {
        uploadAttachment: (input: {
            data: File | Blob;
            id: string;
            multipartUploadUrls: {
                __typename?: "MultipartUrl";
                partNumber: number;
                url: string;
            }[];
            multipartUploadId: string;
            record: AttachableRecords$1;
            multipart: true;
            uploadUrl?: undefined;
            headers?: undefined;
        } | {
            data: File | Blob;
            id: string;
            uploadUrl: string;
            headers: Record<string, string>;
            record: AttachableRecords$1;
            multipart: false;
            multipartUploadUrls?: undefined;
            multipartUploadId?: undefined;
        } | {
            file: File | Blob;
            record: AttachableRecords$1;
        } | Promise<{
            data: File | Blob;
            id: string;
            multipartUploadUrls: {
                __typename?: "MultipartUrl";
                partNumber: number;
                url: string;
            }[];
            multipartUploadId: string;
            record: AttachableRecords$1;
            multipart: true;
            uploadUrl?: undefined;
            headers?: undefined;
        } | {
            data: File | Blob;
            id: string;
            uploadUrl: string;
            headers: Record<string, string>;
            record: AttachableRecords$1;
            multipart: false;
            multipartUploadUrls?: undefined;
            multipartUploadId?: undefined;
        }>, args_1?: UploadFileOptions | undefined) => Promise<UploadAttachmentResponse>;
        prepareAttachmentForUpload: (data: File | Blob, record: AttachableRecords$1) => Promise<{
            data: File | Blob;
            id: string;
            multipartUploadUrls: {
                __typename?: "MultipartUrl";
                partNumber: number;
                url: string;
            }[];
            multipartUploadId: string;
            record: AttachableRecords$1;
            multipart: true;
            uploadUrl?: undefined;
            headers?: undefined;
        } | {
            data: File | Blob;
            id: string;
            uploadUrl: string;
            headers: Record<string, string>;
            record: AttachableRecords$1;
            multipart: false;
            multipartUploadUrls?: undefined;
            multipartUploadId?: undefined;
        }>;
        analyzeAttachment: (signedId: string, opts?: {
            signal?: AbortSignal;
        } | undefined) => Promise<{
            __typename: "AudioAttachment";
            duration?: number | null;
            waveformUrl?: string | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "ImageAttachment";
            height?: number | null;
            width?: number | null;
            blurhash?: string | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "OtherAttachment";
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | {
            __typename: "VideoAttachment";
            height?: number | null;
            width?: number | null;
            duration?: number | null;
            aspectRatio?: number | null;
            id: string;
            signedId?: string | null;
            analyzed: boolean;
            byteSizeV2?: string | null;
            filename?: string | null;
            contentType?: string | null;
            preview: {
                __typename?: "AttachmentSource";
                url: string;
            };
            source: {
                __typename?: "AttachmentSource";
                url: string;
            };
        } | undefined>;
        getAttachment(variables: Exact<{
            id: Scalars["ID"]["input"];
        }>, options?: RequestInit | undefined): Promise<GetAttachmentQuery["attachment"]>;
        processAttachment(variables: AnalyzeAttachmentInput, options?: RequestInit | undefined): Promise<ProcessAttachmentMutation["mediaAnalyzeAttachment"]>;
        uploadMedia(variables: DirectUploadInput, options?: RequestInit | undefined): Promise<UploadMediaMutation["mediaDirectUpload"]>;
    };
    websockets: {
        sendMessage: (input: {
            message: string;
            target: {
                experience: string;
            } | {
                user: string;
            } | {
                custom: string;
            } | "everyone";
        }) => Promise<void>;
        client: () => WhopWebsocketClientServer;
    };
    oauth: WhopOAuth;
    verifyUserToken: <DT extends boolean = false>(tokenOrHeadersOrRequest: string | Headers | Request | null | undefined, overrideOptions?: Partial<VerifyUserTokenOptions<DT>> | undefined) => Promise<DT extends true ? UserTokenPayload | null : UserTokenPayload>;
    accessPasses: {
        getAccessPass(variables: Exact<{
            accessPassId: Scalars["ID"]["input"];
        }>, options?: RequestInit | undefined): Promise<GetAccessPassQuery["accessPass"]>;
    };
    access: {
        checkIfUserHasAccessToAccessPass(variables: Exact<{
            accessPassId: Scalars["ID"]["input"];
            userId?: InputMaybe<Scalars["ID"]["input"]>;
        }>, options?: RequestInit | undefined): Promise<CheckIfUserHasAccessToAccessPassQuery["hasAccessToAccessPass"]>;
        checkIfUserHasAccessToCompany(variables: Exact<{
            companyId: Scalars["ID"]["input"];
            userId?: InputMaybe<Scalars["ID"]["input"]>;
        }>, options?: RequestInit | undefined): Promise<CheckIfUserHasAccessToCompanyQuery["hasAccessToCompany"]>;
        checkIfUserHasAccessToExperience(variables: Exact<{
            experienceId: Scalars["ID"]["input"];
            userId?: InputMaybe<Scalars["ID"]["input"]>;
        }>, options?: RequestInit | undefined): Promise<CheckIfUserHasAccessToExperienceQuery["hasAccessToExperience"]>;
    };
    apps: {
        createAppBuild(variables: CreateAppBuildInput, options?: RequestInit | undefined): Promise<CreateAppBuildMutation["createAppBuild"]>;
    };
    companies: {
        getCompanyLedgerAccount(variables: Exact<{
            companyId: Scalars["ID"]["input"];
        }>, options?: RequestInit | undefined): Promise<GetCompanyLedgerAccountQuery["company"]>;
        getWaitlistEntriesForCompany(variables: Exact<{
            companyId: Scalars["ID"]["input"];
            after?: InputMaybe<Scalars["String"]["input"]>;
            before?: InputMaybe<Scalars["String"]["input"]>;
            first?: InputMaybe<Scalars["Int"]["input"]>;
            last?: InputMaybe<Scalars["Int"]["input"]>;
        }>, options?: RequestInit | undefined): Promise<GetWaitlistEntriesForCompanyQuery["company"]>;
    };
    courses: {
        createAssessmentQuestion(variables: CreateAssessmentQuestionInput, options?: RequestInit | undefined): Promise<CreateAssessmentQuestionMutation["createAssessmentQuestion"]>;
        createChapter(variables: CreateChapterInput, options?: RequestInit | undefined): Promise<CreateChapterMutation["createChapter"]>;
        createCourse(variables: CreateCourseInput, options?: RequestInit | undefined): Promise<CreateCourseMutation["createCourse"]>;
        createLesson(variables: CreateLessonInput, options?: RequestInit | undefined): Promise<CreateLessonMutation["createLesson"]>;
        deleteAssessmentQuestionImage(variables: DeleteAssessmentQuestionImageInput, options?: RequestInit | undefined): Promise<DeleteAssessmentQuestionImageMutation["deleteAssessmentQuestionImage"]>;
        deleteChapter(variables: DeleteChapterInput, options?: RequestInit | undefined): Promise<DeleteChapterMutation["deleteChapter"]>;
        deleteLessonAttachment(variables: DeleteLessonAttachmentInput, options?: RequestInit | undefined): Promise<DeleteLessonAttachmentMutation["deleteLessonAttachment"]>;
        deleteLesson(variables: DeleteLessonInput, options?: RequestInit | undefined): Promise<DeleteLessonMutation["deleteLesson"]>;
        getCourse(variables: Exact<{
            courseId: Scalars["ID"]["input"];
        }>, options?: RequestInit | undefined): Promise<GetCourseQuery["course"]>;
        getLesson(variables: Exact<{
            courseId: Scalars["ID"]["input"];
            lessonId: Scalars["ID"]["input"];
        }>, options?: RequestInit | undefined): Promise<GetLessonQuery["course"]>;
        getUserLessonInteractions(variables: Exact<{
            courseId: Scalars["ID"]["input"];
        }>, options?: RequestInit | undefined): Promise<GetUserLessonInteractionsQuery["course"]>;
        listCoursesForCompany(variables: Exact<{
            companyId: Scalars["ID"]["input"];
            first?: InputMaybe<Scalars["Int"]["input"]>;
            after?: InputMaybe<Scalars["String"]["input"]>;
        }>, options?: RequestInit | undefined): Promise<ListCoursesForCompanyQuery["company"]>;
        listCoursesForExperience(variables: Exact<{
            experienceId: Scalars["ID"]["input"];
            first?: InputMaybe<Scalars["Int"]["input"]>;
            after?: InputMaybe<Scalars["String"]["input"]>;
        }>, options?: RequestInit | undefined): Promise<ListCoursesForExperienceQuery["publicExperience"]>;
        markLessonAsCompleted(variables: MarkLessonAsCompletedInput, options?: RequestInit | undefined): Promise<MarkLessonAsCompletedMutation["markLessonAsCompleted"]>;
        moveCourse(variables: MoveCourseInput, options?: RequestInit | undefined): Promise<MoveCourseMutation["moveCourse"]>;
        updateChapterOrder(variables: UpdateChapterOrderInput, options?: RequestInit | undefined): Promise<UpdateChapterOrderMutation["updateChapterOrder"]>;
        updateChapter(variables: UpdateChapterInput, options?: RequestInit | undefined): Promise<UpdateChapterMutation["updateChapter"]>;
        updateLessonOrder(variables: UpdateLessonOrderInput, options?: RequestInit | undefined): Promise<UpdateLessonOrderMutation["updateLessonOrder"]>;
        updateLesson(variables: UpdateLessonInput, options?: RequestInit | undefined): Promise<UpdateLessonMutation["updateLesson"]>;
    };
    experiences: {
        getExperience(variables: Exact<{
            experienceId: Scalars["ID"]["input"];
        }>, options?: RequestInit | undefined): Promise<GetExperienceQuery["experience"]>;
        listAccessPassesForExperience(variables: Exact<{
            experienceId: Scalars["ID"]["input"];
        }>, options?: RequestInit | undefined): Promise<ListAccessPassesForExperienceQuery["experience"]>;
        listExperiences(variables: Exact<{
            after?: InputMaybe<Scalars["String"]["input"]>;
            first?: InputMaybe<Scalars["Int"]["input"]>;
            accessPassId?: InputMaybe<Scalars["ID"]["input"]>;
            appId?: InputMaybe<Scalars["ID"]["input"]>;
            onAccessPass?: InputMaybe<Scalars["Boolean"]["input"]>;
            companyId: Scalars["ID"]["input"];
        }>, options?: RequestInit | undefined): Promise<ListExperiencesQuery["company"]>;
        listUsersForExperience(variables: Exact<{
            experienceId: Scalars["ID"]["input"];
            after?: InputMaybe<Scalars["String"]["input"]>;
            before?: InputMaybe<Scalars["String"]["input"]>;
            direction?: InputMaybe<Direction>;
            first?: InputMaybe<Scalars["Int"]["input"]>;
            searchQuery?: InputMaybe<Scalars["String"]["input"]>;
        }>, options?: RequestInit | undefined): Promise<ListUsersForExperienceQuery["publicExperience"]>;
    };
    forums: {
        createForumPost(variables: CreateForumPostInput, options?: RequestInit | undefined): Promise<CreateForumPostMutation["createForumPost"]>;
        findOrCreateForum(variables: CreateForumInput, options?: RequestInit | undefined): Promise<FindOrCreateForumMutation["createForum"]>;
        listForumPostsFromForum(variables: Exact<{
            experienceId: Scalars["ID"]["input"];
        }>, options?: RequestInit | undefined): Promise<ListForumPostsFromForumQuery["feedPosts"]>;
    };
    messages: {
        findOrCreateChat(variables: CreateChatInput, options?: RequestInit | undefined): Promise<FindOrCreateChatMutation["createChat"]>;
        listDirectMessageConversations(variables?: Exact<{
            beforeTimestamp?: InputMaybe<Scalars["BigInt"]["input"]>;
            limit?: InputMaybe<Scalars["Int"]["input"]>;
            query?: InputMaybe<Scalars["String"]["input"]>;
            status?: InputMaybe<DmsFeedMemberStatuses>;
            unread?: InputMaybe<Scalars["Boolean"]["input"]>;
        }> | undefined, options?: RequestInit | undefined): Promise<ListDirectMessageConversationsQuery["myDmsChannelsV2"]>;
        listMessagesFromChat(variables?: Exact<{
            chatExperienceId?: InputMaybe<Scalars["ID"]["input"]>;
        }> | undefined, options?: RequestInit | undefined): Promise<ListMessagesFromChatQuery["feedPosts"]>;
        sendDirectMessageToUser(variables: Exact<{
            toUserIdOrUsername: Scalars["ID"]["input"];
            message: Scalars["String"]["input"];
        }>, options?: RequestInit | undefined): Promise<SendDirectMessageToUserMutation["sendMessage"]>;
        sendMessageToChat(variables: Exact<{
            experienceId: Scalars["ID"]["input"];
            message: Scalars["String"]["input"];
        }>, options?: RequestInit | undefined): Promise<SendMessageToChatMutation["sendMessage"]>;
    };
    notifications: {
        sendPushNotification(variables: SendNotificationInput, options?: RequestInit | undefined): Promise<SendPushNotificationMutation["sendNotification"]>;
    };
    payments: {
        chargeUser(variables: ChargeUserInput, options?: RequestInit | undefined): Promise<ChargeUserMutation["chargeUser"]>;
        createCheckoutSession(variables: CreateCheckoutSessionInput, options?: RequestInit | undefined): Promise<CreateCheckoutSessionMutation["createCheckoutSession"]>;
        listReceiptsForCompany(variables: Exact<{
            companyId: Scalars["ID"]["input"];
            first?: InputMaybe<Scalars["Int"]["input"]>;
            after?: InputMaybe<Scalars["String"]["input"]>;
            filter?: InputMaybe<ReceiptV2Filters>;
        }>, options?: RequestInit | undefined): Promise<ListReceiptsForCompanyQuery["company"]>;
        payUser(variables: TransferFundsInput, options?: RequestInit | undefined): Promise<PayUserMutation["transferFunds"]>;
    };
    users: {
        getCurrentUser(variables?: Exact<{
            [key: string]: never;
        }> | undefined, options?: RequestInit | undefined): Promise<GetCurrentUserQuery["viewer"]>;
        getUserLedgerAccount(variables?: Exact<{
            [key: string]: never;
        }> | undefined, options?: RequestInit | undefined): Promise<GetUserLedgerAccountQuery["viewer"]>;
        getUser(variables: Exact<{
            userId: Scalars["ID"]["input"];
        }>, options?: RequestInit | undefined): Promise<GetUserQuery["publicUser"]>;
    };
};
type WhopServerSdk = ReturnType<typeof BaseWhopServerSdk> & {
    withUser: (userId: string) => WhopServerSdk;
    withCompany: (companyId: string) => WhopServerSdk;
};

declare class WhopWebsocketClientServer extends WhopWebsocketClientBase {
    private keys;
    constructor(keys: WhopServerSdkOptions);
    protected makeWebsocket(): WebSocket;
}

/**
 * SDK options for client side use
 */
interface WhopClientSdkOptions {
    /** the origin of the API */
    apiOrigin?: string;
    /** the path of the API */
    apiPath?: string;
}

export { type GetCurrentUserQuery$1 as $, type AttachableRecords$1 as A, type MoveCourseInput$1 as B, type CreateAssessmentQuestionInput$1 as C, type DirectUploadInput$1 as D, type Exact$1 as E, type MoveCourseMutation$1 as F, type GetAttachmentQuery$1 as G, type UpdateChapterOrderInput$1 as H, type InputMaybe$1 as I, type UpdateChapterOrderMutation$1 as J, type UpdateChapterInput$1 as K, type ListCoursesForCompanyQuery$1 as L, type MarkLessonAsCompletedInput$1 as M, type UpdateChapterMutation$1 as N, type UpdateLessonOrderInput$1 as O, type ProcessAttachmentMutation$1 as P, type UpdateLessonOrderMutation$1 as Q, type UpdateLessonInput$1 as R, type Scalars$1 as S, type UpdateLessonMutation$1 as T, type UploadFileOptions as U, type GetExperienceQuery$1 as V, type WhopClientSdkOptions as W, type Direction$1 as X, type ListUsersForExperienceQuery$1 as Y, type ListForumPostsFromForumQuery$1 as Z, type ListMessagesFromChatQuery$1 as _, type UploadAttachmentResponse as a, type AutomatedMessagesTriggerCategories as a$, type GetUserLedgerAccountQuery$1 as a0, type GetUserQuery$1 as a1, type WhopServerSdkOptions as a2, type WhopServerSdk as a3, index as a4, getUserToken as a5, makeUserTokenVerifier as a6, verifyUserToken as a7, type UserTokenPayload as a8, type VerifyUserTokenOptions as a9, type AccessPassConditions as aA, type AccessPassFilters as aB, type AccessPassOnboardingVersionTypes as aC, type AccessPassOrder as aD, type AccessPassTypes as aE, type AccessPassesSortableColumns as aF, type AffiliatePayoutTypes as aG, type AffiliatePlansSortableColumns as aH, type AffiliateReferralLogFilters as aI, type AffiliateReferralLogsSortableColumns as aJ, type AffiliateTypes as aK, type AffiliatesSortableColumns as aL, type AnalyzeAttachmentInput as aM, type ApiKeyPermissions as aN, type ApiVersion as aO, type AppBuildPlatforms as aP, type AppBuildStatuses as aQ, type AppImageStyles as aR, type AppStatuses as aS, type AppValidScopes as aT, type AppViewTypes as aU, type ApplicationCriteriaIdentifier as aV, type AttachableRecords as aW, type AttachmentInput as aX, type AuditLogsSortableColumns as aY, type AuthenticationMethods as aZ, type AuthorizedUserRoles as a_, makeWebhookValidator as aa, type WhopWebhookRequestBody as ab, type ReceivableWebsocketMessage as ac, type SendableWebsocketMessage as ad, type WebsocketBroadcastTarget as ae, type WebsocketMessageHandler as af, type WebsocketStatus as ag, type WebsocketStatusHandler as ah, WhopWebsocketClientBase as ai, WhopWebsocketClientServer as aj, type Maybe as ak, type InputMaybe as al, type Exact as am, type MakeOptional as an, type MakeMaybe as ao, type MakeEmpty as ap, type Incremental as aq, type Scalars as ar, type AbuseReportCategoryResourceTypes as as, type AbuseReportCategoryVisibility as at, type AbuseReportStatus as au, type AcceptedPaymentMethods as av, type AccessLevel as aw, type AccessPassAffiliateOrder as ax, type AccessPassAffiliateStatuses as ay, type AccessPassAttachmentCategories as az, type AnalyzeAttachmentInput$1 as b, type CreatorDashboardChartIntervals as b$, type AvatarImageStyles as b0, type BalanceReservationReservationTypes as b1, type BanReasons as b2, type BanUserInput as b3, type BillingReasons as b4, type BnplProvider as b5, type BountyFilters as b6, type BusinessActivityEventTypes as b7, type BusinessAffiliateImageStyles as b8, type BusinessTypes as b9, type ContentRewardsContentType as bA, type ContentRewardsPlatform as bB, type ContentRewardsPublicCampaignOrder as bC, type ContentRewardsPublicCampaignsFilters as bD, type ContentRewardsSubmissionAnalysisResults as bE, type ContentRewardsSubmissionFlagReasons as bF, type ContentRewardsSubmissionStatus as bG, type ContentRewardsSubmissionViewsChartConfigInput as bH, type ContentRewardsSubmissionsFilters as bI, type ContentRewardsSubmissionsOrder as bJ, type ContentRewardsSubmissionsSortableColumns as bK, type ContentRewardsViewsChartConfigInput as bL, type CoursesAssessmentQuestionTypes as bM, type CreateAppBuildInput as bN, type CreateAssessmentQuestionInput as bO, type CreateChapterInput as bP, type CreateChatInput as bQ, type CreateCheckoutInstanceInput as bR, type CreateCheckoutSessionInput as bS, type CreateCompanyMutedUserInput as bT, type CreateCourseInput as bU, type CreateForumInput as bV, type CreateForumPostInput as bW, type CreateLessonInput as bX, type CreatePromoCodeInput as bY, type CreatorDashboardCancelationDiscounts as bZ, type CreatorDashboardChartConfigInput as b_, type BuyButtonLocations as ba, type BuyerFeeMode as bb, type CancelOptions as bc, type CaseStates as bd, type ChangeCardMyMembershipInput as be, type ChargeCardFunding as bf, type ChargeOutcomeRiskLevels as bg, type ChargeUserInput as bh, type ChargeUserResponseStatus as bi, type ChartIntervals as bj, type ChatFeedInput as bk, type CheckoutPaymentMethodCategory as bl, type CheckoutSessionTypes as bm, type CoinbaseCommerceStatuses as bn, type CompaniesOrder as bo, type CompanyAttachmentCategories as bp, type CompanyImageStyles as bq, type CompanyTypes as br, type CompetitionMetricTypes as bs, type CompetitionPrizeTypes as bt, type ConnectedAccountStatuses as bu, type ConnectedAccountTypes as bv, type ContentRewardsCampaignOrder as bw, type ContentRewardsCampaignStatus as bx, type ContentRewardsCampaignsFilters as by, type ContentRewardsCategory as bz, type UploadMediaMutation$1 as c, type GlobalAffiliateStatuses as c$, type CreditTransactionActivityTypes as c0, type CreditTransactionFilters as c1, type CreditTransactionStatuses as c2, type CreditTransactionTransferReasons as c3, type CreditTransactionTransferStatuses as c4, type CreditTransactionTransferTypes as c5, type CreditTransactionTransfersSortableColumns as c6, type CryptoWalletNetworks as c7, type Currencies as c8, type CustomCtas as c9, type EarningsTypes as cA, type EntityTypes as cB, type EntriesSortableColumns as cC, type EntryFilters as cD, type EntryOrder as cE, type EntryStatus as cF, type EntryTypes as cG, type ExperienceAccessLevels as cH, type ExperienceActivityCardTypes as cI, type ExperienceFilters as cJ, type ExperienceLinkModes as cK, type ExperienceTypes as cL, type FeedTypes as cM, type FileAttachmentInput as cN, type FileAttachmentModerationResultsTypes as cO, type FileAttachmentTypes as cP, type FlashSaleDurations as cQ, type FlashSaleStatuses as cR, type ForumEmailNotificationPreferences as cS, type ForumLayoutTypes as cT, type ForumPostTypes as cU, type ForumWhoCanCommentTypes as cV, type ForumWhoCanPostTypes as cW, type FriendlyReceiptStatus as cX, type GatewayTypes as cY, type GifInput as cZ, type GifProviders as c_, type CustomFieldInput as ca, type CustomFieldTypes as cb, type DeleteAssessmentQuestionImageInput as cc, type DeleteChapterInput as cd, type DeleteCompanyMutedUserInput as ce, type DeleteLessonAttachmentInput as cf, type DeleteLessonInput as cg, type DeletePromoCodeInput as ch, type Device as ci, type DirectMessageStatus as cj, type DirectUploadInput as ck, type Direction as cl, type DiscordAccountImageStyles as cm, type DiscoverStatuses as cn, type DisputeRiskLevels as co, type DisputeStatuses as cp, type DisputesSortableColumns as cq, type DmsChannelsSortTypes as cr, type DmsFeedInput as cs, type DmsFeedMemberInput as ct, type DmsFeedMemberNotificationPreferences as cu, type DmsFeedMemberStatuses as cv, type DmsFeedTypes as cw, type DmsPostInput as cx, type DmsPostTypes as cy, type EarningsReportPeriods as cz, type WebsocketClientOptionsClient as d, type PayoutDestinationStatuses as d$, type HubMembershipStatus as d0, type ImageAttachmentVariants as d1, type ImageExtensions as d2, type ImageImageStyles as d3, type IndustryTypes as d4, type InstantPayoutErrorCodes as d5, type ItemOrderingOrderTypes as d6, type Languages as d7, type LeaderboardTypes as d8, type LeadsSortableColumns as d9, type MembershipImageStyles as dA, type MembershipPaymentProcessor as dB, type MembershipPushNotification as dC, type MembershipStatus as dD, type MembershipsSortableColumns as dE, type ModerationResults as dF, type MoveCourseInput as dG, type MutedUserInput as dH, type MuxAssetStatuses as dI, type NormalizedAccountTypes as dJ, type NotificationPreferenceChannel as dK, type NotificationPreferencesFilters as dL, type NotificationTopicStatus as dM, type NotificationTopicVisibility as dN, type NotificationsV4Filters as dO, type NotificationsV4Pagination as dP, type OnboardingProviders as dQ, type OnboardingTypes as dR, type PaymentMethods as dS, type PaymentProcessor as dT, type PaymentProviders as dU, type PaymentsApprovalStatuses as dV, type PayoutAccountProviders as dW, type PayoutAccountStatuses as dX, type PayoutDeliveryTypes as dY, type PayoutDestinationPlatformStatuses as dZ, type PayoutDestinationProviders as d_, type LedgerAccountStandings as da, type LedgerTypes as db, type LedgerWithdrawalFrequencies as dc, type LedgerWithdrawalStatuses as dd, type LessonTypes as de, type LessonVisibilities as df, type LikedDiscoverAccessPassesOrder as dg, type LinkEmbedInput as dh, type LivestreamDestination as di, type LivestreamFeedInput as dj, type LivestreamWhoCanPostTypes as dk, type LivestreamWhoCanReactTypes as dl, type MadeForYouPlanFilters as dm, type ManagementItems as dn, type MarkLessonAsCompletedInput as dp, type MarketplaceCategoryOrder as dq, type MarketplaceCategoryTypes as dr, type MarketplaceStatuses as ds, type Media as dt, type MemberMostRecentActions as du, type MemberStatuses as dv, type MemberSubtextTypes as dw, type MembersSortableColumns as dx, type MembershipActions as dy, type MembershipHeaderStatus as dz, WhopWebsocketClientBrowser as e, type ReviewFilters as e$, type PayoutDestinationTypes as e0, type PayoutIntervals as e1, type PayoutMethods as e2, type PayoutStatuses as e3, type PayoutTokenAttributeDataTypes as e4, type PayoutTokenAttributeInputTypes as e5, type PayoutTokenAttributeValueTypes as e6, type PayoutTokenProviders as e7, type PayoutTokenStatuses as e8, type PayoutTypes as e9, type PublicBountiesOrder as eA, type ReactionInput as eB, type ReactionTypes as eC, type ReceiptFeeTypes as eD, type ReceiptPaymentProcessor as eE, type ReceiptStatus as eF, type ReceiptStatusV2 as eG, type ReceiptTaxBehaviors as eH, type ReceiptV2Filters as eI, type ReceiptV2Order as eJ, type ReceiptsSortableColumns as eK, type RefundStatuses as eL, type ReleaseMethod as eM, type ReportTypes as eN, type ResolutionActions as eO, type ResolutionCustomerResponses as eP, type ResolutionFilters as eQ, type ResolutionIneligibilityReason as eR, type ResolutionIssueTypes as eS, type ResolutionMerchantResponses as eT, type ResolutionOrder as eU, type ResolutionPlatformResponses as eV, type ResolutionReporters as eW, type ResolutionStatuses as eX, type ResolutionsSortableColumns as eY, type RestrictionSetReasonCodes as eZ, type RetryPaymentMyMembershipInput as e_, type PaypalAccountStatuses as ea, type PerkStatus as eb, type PlanDirectLink as ec, type PlanFilters as ed, type PlanOrder as ee, type PlanTypes as ef, type PlansOrder as eg, type PlansSortableColumns as eh, type PollInput as ei, type PollOptionInput as ej, type PostTypes as ek, type ProcessEntitiesInput as el, type ProductHighlightTypes as em, type ProductImageStyles as en, type ProductTaxCodeProductTypes as eo, type ProductUserFilters as ep, type ProductUserOrder as eq, type ProfileVisibilities as er, type PromoCodeFilters as es, type PromoCodeNewStatus as et, type PromoCodeOrder as eu, type PromoCodeStatus as ev, type PromoCodesSortableColumns as ew, type PromoDurations as ex, type PromoTypes as ey, type PublicAccessPassesOrder as ez, type GetAccessPassQuery$1 as f, type Visibility as f$, type ReviewOrder as f0, type ReviewReportStatus as f1, type ReviewStatus as f2, type ReviewsSortableColumns as f3, type RewardUnits as f4, type RfiStatuses as f5, type SecurityLevels as f6, type SendMessageInput as f7, type SendNotificationInput as f8, type SimpleNotificationPreferenceStatus as f9, type UpdateLessonOrderInput as fA, type UpdateMembershipInput as fB, type UploadPartInput as fC, type UpsellPlanInput as fD, type UpsellTypes as fE, type UserAffiliateReferralLogFilters as fF, type UserAffiliateReferralLogOrder as fG, type UserChartConfigInput as fH, type UserContentRewardsSubmissionsFilters as fI, type UserContentRewardsSubmissionsOrder as fJ, type UserNotificationPreferenceChannel as fK, type UserOnboardingStepsTypes as fL, type UserReceiptFilters as fM, type UserReceiptOrder as fN, type UserSocialLinkWebsites as fO, type UserTypes as fP, type ValidMembershipsOrder as fQ, type VaultMethods as fR, type VaultTokenProviders as fS, type VerificationErrorCodes as fT, type VerificationProviders as fU, type VerificationStatuses as fV, type VerifiedStatuses as fW, type VersionEventTypes as fX, type VersionFilters as fY, type VersionObjects as fZ, type VersionOrder as f_, type SocialLinkWebsites as fa, type StatsConfigInput as fb, type Status as fc, type Statuses as fd, type StripeAccountStatuses as fe, type StripeAccountTypes as ff, type StripeBusinessTypes as fg, type StripeExternalAccountStatuses as fh, type StripePayoutMethods as fi, type StripePayoutPayoutTypes as fj, type StripePayoutStatuses as fk, type StripePayoutTraceStatuses as fl, type TaxTypes as fm, type TerminateMyMembershipInput as fn, type ToggleCancelMyMembershipInput as fo, type Topic as fp, type TrackingLinkDestination as fq, type TrackingLinksSortableColumns as fr, type TrackingPixelTypes as fs, type TransferFundsInput as ft, type TransferLinkMyMembershipInput as fu, type UnbanUserInput as fv, type UniversalPostFeedTypes as fw, type UpdateChapterInput as fx, type UpdateChapterOrderInput as fy, type UpdateLessonInput as fz, type CreateAssessmentQuestionMutation$1 as g, type CreateLessonMutation as g$, type VisibilityFilter as g0, type WebhookEvent as g1, type WeeklyAnchors as g2, type WhoCanPostTypes as g3, type WhoCanReactTypes as g4, type WhopSidebarFilters as g5, type WhopSidebarOrderEnum as g6, type WhopSidebarWithEarningsFilters as g7, type WhopSidebarWithEarningsOrderEnum as g8, type WithdrawalFeeTypes as g9, type GetAccessPassQueryVariables as gA, type GetAccessPassQuery as gB, type CheckIfUserHasAccessToAccessPassQueryVariables as gC, type CheckIfUserHasAccessToAccessPassQuery as gD, type CheckIfUserHasAccessToCompanyQueryVariables as gE, type CheckIfUserHasAccessToCompanyQuery as gF, type CheckIfUserHasAccessToExperienceQueryVariables as gG, type CheckIfUserHasAccessToExperienceQuery as gH, type CreateAppBuildMutationVariables as gI, type CreateAppBuildMutation as gJ, type GetAttachmentQueryVariables as gK, type GetAttachmentQuery as gL, type ProcessAttachmentMutationVariables as gM, type ProcessAttachmentMutation as gN, type UploadMediaMutationVariables as gO, type UploadMediaMutation as gP, type GetCompanyLedgerAccountQueryVariables as gQ, type GetCompanyLedgerAccountQuery as gR, type GetWaitlistEntriesForCompanyQueryVariables as gS, type GetWaitlistEntriesForCompanyQuery as gT, type CreateAssessmentQuestionMutationVariables as gU, type CreateAssessmentQuestionMutation as gV, type CreateChapterMutationVariables as gW, type CreateChapterMutation as gX, type CreateCourseMutationVariables as gY, type CreateCourseMutation as gZ, type CreateLessonMutationVariables as g_, type WithdrawalFilters as ga, type WithdrawalMethods as gb, type WithdrawalProviders as gc, type WithdrawalSpeeds as gd, type WithdrawalStatus as ge, type WithdrawalTypes as gf, type WithdrawalsSortableColumns as gg, type AccessPassFragmentFragment as gh, type BaseAppBuildFragment as gi, type AttachmentFragment as gj, type BaseLedgerAccountFragment as gk, type BasePublicPlanFragment as gl, type BasePlanFragment as gm, type BaseReceiptFragment as gn, type BaseUserFragment as go, type BasePublicProfileUserFragment as gp, type BasicCourseFragment as gq, type BasicCourseChapterFragment as gr, type BasicCourseLessonFragment as gs, type ExperienceFragmentFragment as gt, type PublicExperienceFragmentFragment as gu, type ForumPostFragmentFragment as gv, type FullCourseLessonFragment as gw, type CourseMuxAssetFragment as gx, type CourseAssessmentQuestionFragment as gy, type MessageFragment as gz, type CreateChapterInput$1 as h, type PayUserMutation as h$, type DeleteAssessmentQuestionImageMutationVariables as h0, type DeleteAssessmentQuestionImageMutation as h1, type DeleteChapterMutationVariables as h2, type DeleteChapterMutation as h3, type DeleteLessonAttachmentMutationVariables as h4, type DeleteLessonAttachmentMutation as h5, type DeleteLessonMutationVariables as h6, type DeleteLessonMutation as h7, type GetCourseQueryVariables as h8, type GetCourseQuery as h9, type ListUsersForExperienceQueryVariables as hA, type ListUsersForExperienceQuery as hB, type CreateForumPostMutationVariables as hC, type CreateForumPostMutation as hD, type FindOrCreateForumMutationVariables as hE, type FindOrCreateForumMutation as hF, type ListForumPostsFromForumQueryVariables as hG, type ListForumPostsFromForumQuery as hH, type FindOrCreateChatMutationVariables as hI, type FindOrCreateChatMutation as hJ, type ListDirectMessageConversationsQueryVariables as hK, type ListDirectMessageConversationsQuery as hL, type ListMessagesFromChatQueryVariables as hM, type ListMessagesFromChatQuery as hN, type SendDirectMessageToUserMutationVariables as hO, type SendDirectMessageToUserMutation as hP, type SendMessageToChatMutationVariables as hQ, type SendMessageToChatMutation as hR, type SendPushNotificationMutationVariables as hS, type SendPushNotificationMutation as hT, type ChargeUserMutationVariables as hU, type ChargeUserMutation as hV, type CreateCheckoutSessionMutationVariables as hW, type CreateCheckoutSessionMutation as hX, type ListReceiptsForCompanyQueryVariables as hY, type ListReceiptsForCompanyQuery as hZ, type PayUserMutationVariables as h_, type GetLessonQueryVariables as ha, type GetLessonQuery as hb, type GetUserLessonInteractionsQueryVariables as hc, type GetUserLessonInteractionsQuery as hd, type ListCoursesForCompanyQueryVariables as he, type ListCoursesForCompanyQuery as hf, type ListCoursesForExperienceQueryVariables as hg, type ListCoursesForExperienceQuery as hh, type MarkLessonAsCompletedMutationVariables as hi, type MarkLessonAsCompletedMutation as hj, type MoveCourseMutationVariables as hk, type MoveCourseMutation as hl, type UpdateChapterOrderMutationVariables as hm, type UpdateChapterOrderMutation as hn, type UpdateChapterMutationVariables as ho, type UpdateChapterMutation as hp, type UpdateLessonOrderMutationVariables as hq, type UpdateLessonOrderMutation as hr, type UpdateLessonMutationVariables as hs, type UpdateLessonMutation as ht, type GetExperienceQueryVariables as hu, type GetExperienceQuery as hv, type ListAccessPassesForExperienceQueryVariables as hw, type ListAccessPassesForExperienceQuery as hx, type ListExperiencesQueryVariables as hy, type ListExperiencesQuery as hz, type CreateChapterMutation$1 as i, type GetCurrentUserQueryVariables as i0, type GetCurrentUserQuery as i1, type GetUserLedgerAccountQueryVariables as i2, type GetUserLedgerAccountQuery as i3, type GetUserQueryVariables as i4, type GetUserQuery as i5, type Requester as i6, getSdk as i7, type Sdk as i8, type CreateCourseInput$1 as j, type CreateCourseMutation$1 as k, type CreateLessonInput$1 as l, type CreateLessonMutation$1 as m, type DeleteAssessmentQuestionImageInput$1 as n, type DeleteAssessmentQuestionImageMutation$1 as o, type DeleteChapterInput$1 as p, type DeleteChapterMutation$1 as q, type DeleteLessonAttachmentInput$1 as r, type DeleteLessonAttachmentMutation$1 as s, type DeleteLessonInput$1 as t, type DeleteLessonMutation$1 as u, type GetCourseQuery$1 as v, type GetLessonQuery$1 as w, type GetUserLessonInteractionsQuery$1 as x, type ListCoursesForExperienceQuery$1 as y, type MarkLessonAsCompletedMutation$1 as z };