igpapi — Instagram private API Simulator for Node.js (API reference) 4.14.0
    Preparing search index...

    Interface UserProfileHandle

    The handle of UserProfileScreen: what you hold while the screen is open — its data.

    interface UserProfileHandle {
        back: ScreenBackEffect<ScreenOpenersOf<AndroidScreens, "UserProfile">>;
        checkpoint: () => Effect<
            ScreenCheckpoint<"UserProfile">,
            ScreenCheckpointFailure,
        >;
        data: {
            backgroundFailures: readonly {
                message?: string;
                request:
                    | "story"
                    | "chaining"
                    | "recentSearchClick"
                    | "friendship"
                    | "highlights"
                    | "avatar"
                    | "inboxTray"
                    | "schoolBadge"
                    | "quickPromotion"
                    | "noteCtas"
                    | "selfProfileChaining"
                    | "creatorsTrial"
                    | "onboardingChecklist"
                    | "creatorDestinationType"
                    | "paymentsAccountDisabledRisk"
                    | "fbPayExperience"
                    | "donationsEligibility"
                    | "metaOneBenefitEligibility"
                    | "ringCreatorMetadata"
                    | "proHomeBadge"
                    | "proDashboard"
                    | "activityCount";
                tag: string;
            }[];
            following?: boolean;
            gridCursor?: { gridItemsCursor: string; maxId: string };
            isPrivate: boolean;
            media: readonly {
                authorId?: string;
                carousel?: { children: readonly string[]; size?: number };
                dashManifest?: string;
                mediaId: string;
                mediaType?: number;
                position: number;
                takenAt?: number;
                trackingToken?: string;
                videoDuration?: number;
            }[];
            stories: readonly {
                id: string;
                media_type: number;
                pk: string;
                taken_at?: number;
            }[];
            suggested: readonly {
                followRankingToken?: string;
                fullName: string;
                userId: string;
                username: string;
            }[];
            userId: string;
            username: string;
        };
        follow: <Self extends ScreenHandle>(
            this: Self,
            ...args: [],
        ) => Effect<
            {
                backgroundFailures: readonly {
                    message?: string;
                    request: | "story"
                    | "chaining"
                    | "recentSearchClick"
                    | "friendship"
                    | "highlights"
                    | "avatar"
                    | "inboxTray"
                    | "schoolBadge"
                    | "quickPromotion"
                    | "noteCtas"
                    | "selfProfileChaining"
                    | "creatorsTrial"
                    | "onboardingChecklist"
                    | "creatorDestinationType"
                    | "paymentsAccountDisabledRisk"
                    | "fbPayExperience"
                    | "donationsEligibility"
                    | "metaOneBenefitEligibility"
                    | "ringCreatorMetadata"
                    | "proHomeBadge"
                    | "proDashboard"
                    | "activityCount";
                    tag: string;
                }[];
                followed: FriendshipChangeResponse;
                raw: ActionRaw;
                suggested: readonly ScreenListItem<
                    {
                        at: "suggested";
                        item: ScreenItemDefinition<
                            "SuggestedUser",
                            {
                                followRankingToken?: string;
                                fullName: string;
                                userId: string;
                                username: string;
                            },
                            {
                                followRankingToken?: string;
                                fullName: string;
                                userId: string;
                                username: string;
                            },
                            SuggestedUserState,
                            never,
                            never,
                            SuggestedUserItemActions,
                            undefined,
                            never,
                            never,
                        >;
                        key: "userId";
                        source: ScreenItemNodes;
                    },
                    Self,
                >[];
            },
            ProfileFollowFailure,
            never,
        >;
        grid: readonly ScreenListItem<
            {
                at: "media";
                item: ScreenItemDefinition<
                    "ProfileGridMedia",
                    {
                        authorId?: string;
                        carousel?: { children: readonly string[]; size?: number };
                        dashManifest?: string;
                        mediaId: string;
                        mediaType?: number;
                        position: number;
                        takenAt?: number;
                        trackingToken?: string;
                        videoDuration?: number;
                    },
                    {
                        authorId?: string;
                        carousel?: { children: readonly string[]; size?: number };
                        dashManifest?: string;
                        mediaId: string;
                        mediaType?: number;
                        position: number;
                        takenAt?: number;
                        trackingToken?: string;
                        videoDuration?: number;
                    },
                    ProfileGridMediaState,
                    never,
                    never,
                    ProfileGridMediaItemActions,
                    {
                        followsAuthor?: boolean;
                        page: readonly {
                            authorId?: string;
                            carousel?: { children: readonly string[]; size?: number };
                            dashManifest?: string;
                            id: string;
                            mediaType?: number;
                            takenAt?: number;
                            trackingToken?: string;
                            videoDuration?: number;
                        }[];
                        pageCursor?: { gridItemsCursor: string; maxId: string };
                        userId: string;
                        username: string;
                    },
                    never,
                    never,
                >;
                key: "mediaId";
                source: ScreenItemNodes;
            },
            AssembledHandle<
                "UserProfile",
                "screen",
                {
                    backgroundFailures: readonly {
                        message?: string;
                        request: | "story"
                        | "chaining"
                        | "recentSearchClick"
                        | "friendship"
                        | "highlights"
                        | "avatar"
                        | "inboxTray"
                        | "schoolBadge"
                        | "quickPromotion"
                        | "noteCtas"
                        | "selfProfileChaining"
                        | "creatorsTrial"
                        | "onboardingChecklist"
                        | "creatorDestinationType"
                        | "paymentsAccountDisabledRisk"
                        | "fbPayExperience"
                        | "donationsEligibility"
                        | "metaOneBenefitEligibility"
                        | "ringCreatorMetadata"
                        | "proHomeBadge"
                        | "proDashboard"
                        | "activityCount";
                        tag: string;
                    }[];
                    following?: boolean;
                    gridCursor?: { gridItemsCursor: string; maxId: string };
                    isPrivate: boolean;
                    media: readonly {
                        authorId?: string;
                        carousel?: { children: readonly string[]; size?: number };
                        dashManifest?: string;
                        mediaId: string;
                        mediaType?: number;
                        position: number;
                        takenAt?: number;
                        trackingToken?: string;
                        videoDuration?: number;
                    }[];
                    stories: readonly {
                        id: string;
                        media_type: number;
                        pk: string;
                        taken_at?: number;
                    }[];
                    suggested: readonly {
                        followRankingToken?: string;
                        fullName: string;
                        userId: string;
                        username: string;
                    }[];
                    userId: string;
                    username: string;
                },
                ProfileActions,
                ProfileItems,
                ScreenHandle,
                "required",
                true,
                "userId",
                AndroidScreens,
            >,
        >[];
        id: "UserProfile";
        kind: "screen";
        openDirectThread: (
            ...args: [],
        ) => Effect<
            AssembledHandle<
                "DirectThread",
                "screen",
                {
                    media: readonly (
                        | {
                            height: number;
                            media_type: 1;
                            pk: string;
                            url: string;
                            width: number;
                        }
                        | {
                            height: number;
                            media_type: 2;
                            pk: string;
                            url: string;
                            width: number;
                        }
                        | {
                            media_type: 8;
                            pk: string;
                            slides: readonly { media_type: 1
                            | 2; pk: string; url: string }[];
                        }
                    )[];
                    messages: readonly {
                        client_context?: string;
                        command_count?: number;
                        edit_count?: number;
                        item_id: string;
                        item_type: string;
                        media?: | {
                            height: number;
                            media_type: 1;
                            pk: string;
                            url: string;
                            width: number;
                        }
                        | {
                            height: number;
                            media_type: 2;
                            pk: string;
                            url: string;
                            width: number;
                        }
                        | {
                            media_type: 8;
                            pk: string;
                            slides: readonly {
                                media_type: (...)
                                | (...);
                                pk: string;
                                url: string;
                            }[];
                        };
                        message_ephemeral_lifetime_ms?: string;
                        text?: string;
                        timestamp: string;
                        user_id: string;
                    }[];
                    thread: {
                        is_group: boolean;
                        muted?: boolean;
                        thread_id: string;
                        thread_title: string;
                        thread_v2_id?: string;
                    };
                    users: readonly {
                        fbid_v2?: string;
                        full_name: string;
                        pk: string;
                        username: string;
                    }[];
                },
                DirectThreadActions,
                DirectThreadItems,
                ScreenHandle,
                "required",
                true,
                never,
                AndroidScreens,
            >,
            | IgApiError
            | RequestError
            | ParseError
            | TransportError
            | ScreenEnterConcurrentError
            | ScreenDataError
            | ScreenEdgeInputError
            | DirectInboxSeqIdUnknownError
            | DirectThreadNotFoundByParticipantsError,
            never,
        >;
        openReelsTab: (
            ...args: [],
        ) => Effect<
            AssembledHandle<
                "UserProfileReelsTab",
                "screen",
                {
                    clips: readonly {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    }[];
                },
                UserProfileReelsTabActions,
                UserProfileReelsTabItems,
                ScreenHandle,
                "required",
                true,
                never,
                AndroidScreens,
            >,
            | IgApiError
            | RequestError
            | ParseError
            | TransportError
            | SchemaError
            | GraphqlRootFieldMissingError
            | ScreenEnterConcurrentError
            | ScreenDataError
            | ScreenEdgeInputError,
            never,
        >;
        openStories: (
            ...args: [],
        ) => Effect<
            AssembledHandle<
                "StoriesViewer",
                "screen",
                { media_id?: string; media_type: number; user_id: string },
                StoriesViewerActions,
                Record<never, never>,
                ScreenHandle,
                "required",
                true,
                "user_id",
                unknown,
            >,
            ScreenEnterConcurrentError | ScreenDataError | ScreenEdgeInputError,
            never,
        >;
        origin:
            | ScreenOpenersOf<AndroidScreens, "UserProfile">
            | ScreenItemOpenersOf<AndroidScreens, "UserProfile">;
        pipe: {
            <A>(this: A): A;
            <A, B = never>(this: A, ab: (_: A) => B): B;
            <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C;
            <A, B = never, C = never, D = never>(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
            ): D;
            <A, B = never, C = never, D = never, E = never>(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
            ): E;
            <A, B = never, C = never, D = never, E = never, F = never>(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
            ): F;
            <A, B = never, C = never, D = never, E = never, F = never, G = never>(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
            ): G;
            <
                A,
                B = never,
                C = never,
                D = never,
                E = never,
                F = never,
                G = never,
                H = never,
            >(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
                gh: (_: G) => H,
            ): H;
            <
                A,
                B = never,
                C = never,
                D = never,
                E = never,
                F = never,
                G = never,
                H = never,
                I = never,
            >(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
                gh: (_: G) => H,
                hi: (_: H) => I,
            ): I;
            <
                A,
                B = never,
                C = never,
                D = never,
                E = never,
                F = never,
                G = never,
                H = never,
                I = never,
                J = never,
            >(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
                gh: (_: G) => H,
                hi: (_: H) => I,
                ij: (_: I) => J,
            ): J;
            <
                A,
                B = never,
                C = never,
                D = never,
                E = never,
                F = never,
                G = never,
                H = never,
                I = never,
                J = never,
                K = never,
            >(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
                gh: (_: G) => H,
                hi: (_: H) => I,
                ij: (_: I) => J,
                jk: (_: J) => K,
            ): K;
            <
                A,
                B = never,
                C = never,
                D = never,
                E = never,
                F = never,
                G = never,
                H = never,
                I = never,
                J = never,
                K = never,
                L = never,
            >(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
                gh: (_: G) => H,
                hi: (_: H) => I,
                ij: (_: I) => J,
                jk: (_: J) => K,
                kl: (_: K) => L,
            ): L;
            <
                A,
                B = never,
                C = never,
                D = never,
                E = never,
                F = never,
                G = never,
                H = never,
                I = never,
                J = never,
                K = never,
                L = never,
                M = never,
            >(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
                gh: (_: G) => H,
                hi: (_: H) => I,
                ij: (_: I) => J,
                jk: (_: J) => K,
                kl: (_: K) => L,
                lm: (_: L) => M,
            ): M;
            <
                A,
                B = never,
                C = never,
                D = never,
                E = never,
                F = never,
                G = never,
                H = never,
                I = never,
                J = never,
                K = never,
                L = never,
                M = never,
                N = never,
            >(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
                gh: (_: G) => H,
                hi: (_: H) => I,
                ij: (_: I) => J,
                jk: (_: J) => K,
                kl: (_: K) => L,
                lm: (_: L) => M,
                mn: (_: M) => N,
            ): N;
            <
                A,
                B = never,
                C = never,
                D = never,
                E = never,
                F = never,
                G = never,
                H = never,
                I = never,
                J = never,
                K = never,
                L = never,
                M = never,
                N = never,
                O = never,
            >(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
                gh: (_: G) => H,
                hi: (_: H) => I,
                ij: (_: I) => J,
                jk: (_: J) => K,
                kl: (_: K) => L,
                lm: (_: L) => M,
                mn: (_: M) => N,
                no: (_: N) => O,
            ): O;
            <
                A,
                B = never,
                C = never,
                D = never,
                E = never,
                F = never,
                G = never,
                H = never,
                I = never,
                J = never,
                K = never,
                L = never,
                M = never,
                N = never,
                O = never,
                P = never,
            >(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
                gh: (_: G) => H,
                hi: (_: H) => I,
                ij: (_: I) => J,
                jk: (_: J) => K,
                kl: (_: K) => L,
                lm: (_: L) => M,
                mn: (_: M) => N,
                no: (_: N) => O,
                op: (_: O) => P,
            ): P;
            <
                A,
                B = never,
                C = never,
                D = never,
                E = never,
                F = never,
                G = never,
                H = never,
                I = never,
                J = never,
                K = never,
                L = never,
                M = never,
                N = never,
                O = never,
                P = never,
                Q = never,
            >(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
                gh: (_: G) => H,
                hi: (_: H) => I,
                ij: (_: I) => J,
                jk: (_: J) => K,
                kl: (_: K) => L,
                lm: (_: L) => M,
                mn: (_: M) => N,
                no: (_: N) => O,
                op: (_: O) => P,
                pq: (_: P) => Q,
            ): Q;
            <
                A,
                B = never,
                C = never,
                D = never,
                E = never,
                F = never,
                G = never,
                H = never,
                I = never,
                J = never,
                K = never,
                L = never,
                M = never,
                N = never,
                O = never,
                P = never,
                Q = never,
                R = never,
            >(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
                gh: (_: G) => H,
                hi: (_: H) => I,
                ij: (_: I) => J,
                jk: (_: J) => K,
                kl: (_: K) => L,
                lm: (_: L) => M,
                mn: (_: M) => N,
                no: (_: N) => O,
                op: (_: O) => P,
                pq: (_: P) => Q,
                qr: (_: Q) => R,
            ): R;
            <
                A,
                B = never,
                C = never,
                D = never,
                E = never,
                F = never,
                G = never,
                H = never,
                I = never,
                J = never,
                K = never,
                L = never,
                M = never,
                N = never,
                O = never,
                P = never,
                Q = never,
                R = never,
                S = never,
            >(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
                gh: (_: G) => H,
                hi: (_: H) => I,
                ij: (_: I) => J,
                jk: (_: J) => K,
                kl: (_: K) => L,
                lm: (_: L) => M,
                mn: (_: M) => N,
                no: (_: N) => O,
                op: (_: O) => P,
                pq: (_: P) => Q,
                qr: (_: Q) => R,
                rs: (_: R) => S,
            ): S;
            <
                A,
                B = never,
                C = never,
                D = never,
                E = never,
                F = never,
                G = never,
                H = never,
                I = never,
                J = never,
                K = never,
                L = never,
                M = never,
                N = never,
                O = never,
                P = never,
                Q = never,
                R = never,
                S = never,
                T = never,
            >(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
                gh: (_: G) => H,
                hi: (_: H) => I,
                ij: (_: I) => J,
                jk: (_: J) => K,
                kl: (_: K) => L,
                lm: (_: L) => M,
                mn: (_: M) => N,
                no: (_: N) => O,
                op: (_: O) => P,
                pq: (_: P) => Q,
                qr: (_: Q) => R,
                rs: (_: R) => S,
                st: (_: S) => T,
            ): T;
            <
                A,
                B = never,
                C = never,
                D = never,
                E = never,
                F = never,
                G = never,
                H = never,
                I = never,
                J = never,
                K = never,
                L = never,
                M = never,
                N = never,
                O = never,
                P = never,
                Q = never,
                R = never,
                S = never,
                T = never,
                U = never,
            >(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
                gh: (_: G) => H,
                hi: (_: H) => I,
                ij: (_: I) => J,
                jk: (_: J) => K,
                kl: (_: K) => L,
                lm: (_: L) => M,
                mn: (_: M) => N,
                no: (_: N) => O,
                op: (_: O) => P,
                pq: (_: P) => Q,
                qr: (_: Q) => R,
                rs: (_: R) => S,
                st: (_: S) => T,
                tu: (_: T) => U,
            ): U;
            <
                A,
                B = never,
                C = never,
                D = never,
                E = never,
                F = never,
                G = never,
                H = never,
                I = never,
                J = never,
                K = never,
                L = never,
                M = never,
                N = never,
                O = never,
                P = never,
                Q = never,
                R = never,
                S = never,
                T = never,
                U = never,
            >(
                this: A,
                ab: (_: A) => B,
                bc: (_: B) => C,
                cd: (_: C) => D,
                de: (_: D) => E,
                ef: (_: E) => F,
                fg: (_: F) => G,
                gh: (_: G) => H,
                hi: (_: H) => I,
                ij: (_: I) => J,
                jk: (_: J) => K,
                kl: (_: K) => L,
                lm: (_: L) => M,
                mn: (_: M) => N,
                no: (_: N) => O,
                op: (_: O) => P,
                pq: (_: P) => Q,
                qr: (_: Q) => R,
                rs: (_: R) => S,
                st: (_: S) => T,
                tu: (_: T) => U,
            ): U;
        };
        raw: readonly RawAnswer[];
        scrollGrid: (
            ...args: [],
        ) => Effect<
            ProfileGridPageAnswer & { raw: ActionRaw },
            ProfileScrollGridFailure,
            never,
        >;
        share: (
            ...args: [],
        ) => Effect<
            AssembledHandle<
                "DirectShareSheet",
                "screen",
                {
                    share: | {
                        carousel_share_child_media_id?: string;
                        inventory_source?: string;
                        kind: "post";
                        media_id: string;
                        media_type: number;
                        ranking_info_token?: string;
                        send_attribution: "feed_timeline";
                    }
                    | {
                        carousel_share_child_media_id?: string;
                        kind: "carousel";
                        media_id: string;
                        media_type: number;
                        send_attribution: "feed_contextual_profile";
                    }
                    | { kind: "reel"; media_id: string }
                    | { kind: "profile"; send_attribution: "profile"; user_id: string };
                    threads: readonly {
                        is_group: boolean;
                        muted?: boolean;
                        preview: readonly {
                            client_context?: string;
                            command_count?: number;
                            edit_count?: number;
                            item_id: string;
                            item_type: string;
                            media?:
                                | {
                                    height: number;
                                    media_type: 1;
                                    pk: string;
                                    url: string;
                                    width: number;
                                }
                                | {
                                    height: number;
                                    media_type: 2;
                                    pk: string;
                                    url: string;
                                    width: number;
                                }
                                | { media_type: 8; pk: string; slides: readonly (...)[] };
                            message_ephemeral_lifetime_ms?: string;
                            text?: string;
                            timestamp: string;
                            user_id: string;
                        }[];
                        thread_id: string;
                        thread_title: string;
                        thread_v2_id?: string;
                        users: readonly {
                            fbid_v2?: string;
                            full_name: string;
                            pk: string;
                            username: string;
                        }[];
                    }[];
                },
                DirectShareSheetActions,
                DirectShareSheetItems,
                ScreenHandle,
                "required",
                true,
                never,
                unknown,
            >,
            ScreenEnterConcurrentError
            | ScreenDataError
            | ScreenEdgeInputError,
            never,
        >;
        suggestedUsers: readonly ScreenListItem<
            {
                at: "suggested";
                item: ScreenItemDefinition<
                    "SuggestedUser",
                    {
                        followRankingToken?: string;
                        fullName: string;
                        userId: string;
                        username: string;
                    },
                    {
                        followRankingToken?: string;
                        fullName: string;
                        userId: string;
                        username: string;
                    },
                    SuggestedUserState,
                    never,
                    never,
                    SuggestedUserItemActions,
                    undefined,
                    never,
                    never,
                >;
                key: "userId";
                source: ScreenItemNodes;
            },
            AssembledHandle<
                "UserProfile",
                "screen",
                {
                    backgroundFailures: readonly {
                        message?: string;
                        request: | "story"
                        | "chaining"
                        | "recentSearchClick"
                        | "friendship"
                        | "highlights"
                        | "avatar"
                        | "inboxTray"
                        | "schoolBadge"
                        | "quickPromotion"
                        | "noteCtas"
                        | "selfProfileChaining"
                        | "creatorsTrial"
                        | "onboardingChecklist"
                        | "creatorDestinationType"
                        | "paymentsAccountDisabledRisk"
                        | "fbPayExperience"
                        | "donationsEligibility"
                        | "metaOneBenefitEligibility"
                        | "ringCreatorMetadata"
                        | "proHomeBadge"
                        | "proDashboard"
                        | "activityCount";
                        tag: string;
                    }[];
                    following?: boolean;
                    gridCursor?: { gridItemsCursor: string; maxId: string };
                    isPrivate: boolean;
                    media: readonly {
                        authorId?: string;
                        carousel?: { children: readonly string[]; size?: number };
                        dashManifest?: string;
                        mediaId: string;
                        mediaType?: number;
                        position: number;
                        takenAt?: number;
                        trackingToken?: string;
                        videoDuration?: number;
                    }[];
                    stories: readonly {
                        id: string;
                        media_type: number;
                        pk: string;
                        taken_at?: number;
                    }[];
                    suggested: readonly {
                        followRankingToken?: string;
                        fullName: string;
                        userId: string;
                        username: string;
                    }[];
                    userId: string;
                    username: string;
                },
                ProfileActions,
                ProfileItems,
                ScreenHandle,
                "required",
                true,
                "userId",
                AndroidScreens,
            >,
        >[];
        toJSON: () => {
            backgroundFailures: readonly {
                message?: string;
                request: | "story"
                | "chaining"
                | "recentSearchClick"
                | "friendship"
                | "highlights"
                | "avatar"
                | "inboxTray"
                | "schoolBadge"
                | "quickPromotion"
                | "noteCtas"
                | "selfProfileChaining"
                | "creatorsTrial"
                | "onboardingChecklist"
                | "creatorDestinationType"
                | "paymentsAccountDisabledRisk"
                | "fbPayExperience"
                | "donationsEligibility"
                | "metaOneBenefitEligibility"
                | "ringCreatorMetadata"
                | "proHomeBadge"
                | "proDashboard"
                | "activityCount";
                tag: string;
            }[];
            following?: boolean;
            gridCursor?: { gridItemsCursor: string; maxId: string };
            isPrivate: boolean;
            media: readonly {
                authorId?: string;
                carousel?: { children: readonly string[]; size?: number };
                dashManifest?: string;
                mediaId: string;
                mediaType?: number;
                position: number;
                takenAt?: number;
                trackingToken?: string;
                videoDuration?: number;
            }[];
            stories: readonly {
                id: string;
                media_type: number;
                pk: string;
                taken_at?: number;
            }[];
            suggested: readonly {
                followRankingToken?: string;
                fullName: string;
                userId: string;
                username: string;
            }[];
            userId: string;
            username: string;
        };
        userId: string;
    }
    Index

    Properties

    Goes back, as the system back does: closes this screen and answers the screen below it, typed as the screens that can open this one.

    checkpoint: () => Effect<
        ScreenCheckpoint<"UserProfile">,
        ScreenCheckpointFailure,
    >

    Takes a checkpoint of the process with this screen on top: what a fresh process needs to continue from it (restoreCheckpoint), the stack below included, without opening any screen again.

    data: {
        backgroundFailures: readonly {
            message?: string;
            request:
                | "story"
                | "chaining"
                | "recentSearchClick"
                | "friendship"
                | "highlights"
                | "avatar"
                | "inboxTray"
                | "schoolBadge"
                | "quickPromotion"
                | "noteCtas"
                | "selfProfileChaining"
                | "creatorsTrial"
                | "onboardingChecklist"
                | "creatorDestinationType"
                | "paymentsAccountDisabledRisk"
                | "fbPayExperience"
                | "donationsEligibility"
                | "metaOneBenefitEligibility"
                | "ringCreatorMetadata"
                | "proHomeBadge"
                | "proDashboard"
                | "activityCount";
            tag: string;
        }[];
        following?: boolean;
        gridCursor?: { gridItemsCursor: string; maxId: string };
        isPrivate: boolean;
        media: readonly {
            authorId?: string;
            carousel?: { children: readonly string[]; size?: number };
            dashManifest?: string;
            mediaId: string;
            mediaType?: number;
            position: number;
            takenAt?: number;
            trackingToken?: string;
            videoDuration?: number;
        }[];
        stories: readonly {
            id: string;
            media_type: number;
            pk: string;
            taken_at?: number;
        }[];
        suggested: readonly {
            followRankingToken?: string;
            fullName: string;
            userId: string;
            username: string;
        }[];
        userId: string;
        username: string;
    }

    What the screen shows: its data, as its data schema types it.

    Type Declaration

    • ReadonlybackgroundFailures: readonly {
          message?: string;
          request:
              | "story"
              | "chaining"
              | "recentSearchClick"
              | "friendship"
              | "highlights"
              | "avatar"
              | "inboxTray"
              | "schoolBadge"
              | "quickPromotion"
              | "noteCtas"
              | "selfProfileChaining"
              | "creatorsTrial"
              | "onboardingChecklist"
              | "creatorDestinationType"
              | "paymentsAccountDisabledRisk"
              | "fbPayExperience"
              | "donationsEligibility"
              | "metaOneBenefitEligibility"
              | "ringCreatorMetadata"
              | "proHomeBadge"
              | "proDashboard"
              | "activityCount";
          tag: string;
      }[]
    • Optional Readonlyfollowing?: boolean

      The viewer's relationship as the enter-time friendship answer states it. Absent when that check failed (the failure is in backgroundFailures); a follow does not rewrite it — the handle is a snapshot.

    • Optional ReadonlygridCursor?: { gridItemsCursor: string; maxId: string }

      The grid answer's own continuation: what the posts feed's next page is requested with; absent on the last page.

    • ReadonlyisPrivate: boolean
    • Readonlymedia: readonly {
          authorId?: string;
          carousel?: { children: readonly string[]; size?: number };
          dashManifest?: string;
          mediaId: string;
          mediaType?: number;
          position: number;
          takenAt?: number;
          trackingToken?: string;
          videoDuration?: number;
      }[]
    • Readonlystories: readonly { id: string; media_type: number; pk: string; taken_at?: number }[]

      The person's stories, from the ring's answer (feed/user/<id>/story/), in the answer's order — the stories the ring opens the viewer on. Empty when the answer carries no reel.

    • Readonlysuggested: readonly {
          followRankingToken?: string;
          fullName: string;
          userId: string;
          username: string;
      }[]

      The rail's rows; empty when the chaining request failed (see backgroundFailures).

    • ReadonlyuserId: string

      The user whose profile this is: their id (pk).

    • Readonlyusername: string
    follow: <Self extends ScreenHandle>(
        this: Self,
        ...args: [],
    ) => Effect<
        {
            backgroundFailures: readonly {
                message?: string;
                request: | "story"
                | "chaining"
                | "recentSearchClick"
                | "friendship"
                | "highlights"
                | "avatar"
                | "inboxTray"
                | "schoolBadge"
                | "quickPromotion"
                | "noteCtas"
                | "selfProfileChaining"
                | "creatorsTrial"
                | "onboardingChecklist"
                | "creatorDestinationType"
                | "paymentsAccountDisabledRisk"
                | "fbPayExperience"
                | "donationsEligibility"
                | "metaOneBenefitEligibility"
                | "ringCreatorMetadata"
                | "proHomeBadge"
                | "proDashboard"
                | "activityCount";
                tag: string;
            }[];
            followed: FriendshipChangeResponse;
            raw: ActionRaw;
            suggested: readonly ScreenListItem<
                {
                    at: "suggested";
                    item: ScreenItemDefinition<
                        "SuggestedUser",
                        {
                            followRankingToken?: string;
                            fullName: string;
                            userId: string;
                            username: string;
                        },
                        {
                            followRankingToken?: string;
                            fullName: string;
                            userId: string;
                            username: string;
                        },
                        SuggestedUserState,
                        never,
                        never,
                        SuggestedUserItemActions,
                        undefined,
                        never,
                        never,
                    >;
                    key: "userId";
                    source: ScreenItemNodes;
                },
                Self,
            >[];
        },
        ProfileFollowFailure,
        never,
    >

    Taps Follow: follows the user, then refreshes the suggested-users rail the way the app does. The handle you call it on is a snapshot, so its suggestedUsers stay as they were; the answer's suggested is the fresh rail, and the item handles to continue from are the ones it holds. A rail reload that fails is returned beside the follow as a typed background failure (backgroundFailures); a failure that ends the session fails the action instead.

    grid: readonly ScreenListItem<
        {
            at: "media";
            item: ScreenItemDefinition<
                "ProfileGridMedia",
                {
                    authorId?: string;
                    carousel?: { children: readonly string[]; size?: number };
                    dashManifest?: string;
                    mediaId: string;
                    mediaType?: number;
                    position: number;
                    takenAt?: number;
                    trackingToken?: string;
                    videoDuration?: number;
                },
                {
                    authorId?: string;
                    carousel?: { children: readonly string[]; size?: number };
                    dashManifest?: string;
                    mediaId: string;
                    mediaType?: number;
                    position: number;
                    takenAt?: number;
                    trackingToken?: string;
                    videoDuration?: number;
                },
                ProfileGridMediaState,
                never,
                never,
                ProfileGridMediaItemActions,
                {
                    followsAuthor?: boolean;
                    page: readonly {
                        authorId?: string;
                        carousel?: { children: readonly string[]; size?: number };
                        dashManifest?: string;
                        id: string;
                        mediaType?: number;
                        takenAt?: number;
                        trackingToken?: string;
                        videoDuration?: number;
                    }[];
                    pageCursor?: { gridItemsCursor: string; maxId: string };
                    userId: string;
                    username: string;
                },
                never,
                never,
            >;
            key: "mediaId";
            source: ScreenItemNodes;
        },
        AssembledHandle<
            "UserProfile",
            "screen",
            {
                backgroundFailures: readonly {
                    message?: string;
                    request: | "story"
                    | "chaining"
                    | "recentSearchClick"
                    | "friendship"
                    | "highlights"
                    | "avatar"
                    | "inboxTray"
                    | "schoolBadge"
                    | "quickPromotion"
                    | "noteCtas"
                    | "selfProfileChaining"
                    | "creatorsTrial"
                    | "onboardingChecklist"
                    | "creatorDestinationType"
                    | "paymentsAccountDisabledRisk"
                    | "fbPayExperience"
                    | "donationsEligibility"
                    | "metaOneBenefitEligibility"
                    | "ringCreatorMetadata"
                    | "proHomeBadge"
                    | "proDashboard"
                    | "activityCount";
                    tag: string;
                }[];
                following?: boolean;
                gridCursor?: { gridItemsCursor: string; maxId: string };
                isPrivate: boolean;
                media: readonly {
                    authorId?: string;
                    carousel?: { children: readonly string[]; size?: number };
                    dashManifest?: string;
                    mediaId: string;
                    mediaType?: number;
                    position: number;
                    takenAt?: number;
                    trackingToken?: string;
                    videoDuration?: number;
                }[];
                stories: readonly {
                    id: string;
                    media_type: number;
                    pk: string;
                    taken_at?: number;
                }[];
                suggested: readonly {
                    followRankingToken?: string;
                    fullName: string;
                    userId: string;
                    username: string;
                }[];
                userId: string;
                username: string;
            },
            ProfileActions,
            ProfileItems,
            ScreenHandle,
            "required",
            true,
            "userId",
            AndroidScreens,
        >,
    >[]

    The tiles of the profile's media grid, in the grid's order.

    id: "UserProfile"

    Which screen this is: its id in the screen catalog (an item's: its item id).

    kind: "screen"

    What kind of thing the screen is: a screen, a tab, an inner tab, a feed or an item.

    openDirectThread: (
        ...args: [],
    ) => Effect<
        AssembledHandle<
            "DirectThread",
            "screen",
            {
                media: readonly (
                    | {
                        height: number;
                        media_type: 1;
                        pk: string;
                        url: string;
                        width: number;
                    }
                    | {
                        height: number;
                        media_type: 2;
                        pk: string;
                        url: string;
                        width: number;
                    }
                    | {
                        media_type: 8;
                        pk: string;
                        slides: readonly { media_type: 1
                        | 2; pk: string; url: string }[];
                    }
                )[];
                messages: readonly {
                    client_context?: string;
                    command_count?: number;
                    edit_count?: number;
                    item_id: string;
                    item_type: string;
                    media?: | {
                        height: number;
                        media_type: 1;
                        pk: string;
                        url: string;
                        width: number;
                    }
                    | {
                        height: number;
                        media_type: 2;
                        pk: string;
                        url: string;
                        width: number;
                    }
                    | {
                        media_type: 8;
                        pk: string;
                        slides: readonly { media_type: (...)
                        | (...); pk: string; url: string }[];
                    };
                    message_ephemeral_lifetime_ms?: string;
                    text?: string;
                    timestamp: string;
                    user_id: string;
                }[];
                thread: {
                    is_group: boolean;
                    muted?: boolean;
                    thread_id: string;
                    thread_title: string;
                    thread_v2_id?: string;
                };
                users: readonly {
                    fbid_v2?: string;
                    full_name: string;
                    pk: string;
                    username: string;
                }[];
            },
            DirectThreadActions,
            DirectThreadItems,
            ScreenHandle,
            "required",
            true,
            never,
            AndroidScreens,
        >,
        | IgApiError
        | RequestError
        | ParseError
        | TransportError
        | ScreenEnterConcurrentError
        | ScreenDataError
        | ScreenEdgeInputError
        | DirectInboxSeqIdUnknownError
        | DirectThreadNotFoundByParticipantsError,
        never,
    >

    Taps Message: opens the one-to-one thread with this user. Answers the thread's handle, with this profile below it.

    openReelsTab: (
        ...args: [],
    ) => Effect<
        AssembledHandle<
            "UserProfileReelsTab",
            "screen",
            {
                clips: readonly {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                }[];
            },
            UserProfileReelsTabActions,
            UserProfileReelsTabItems,
            ScreenHandle,
            "required",
            true,
            never,
            AndroidScreens,
        >,
        | IgApiError
        | RequestError
        | ParseError
        | TransportError
        | SchemaError
        | GraphqlRootFieldMissingError
        | ScreenEnterConcurrentError
        | ScreenDataError
        | ScreenEdgeInputError,
        never,
    >

    Taps the Reels tab: opens the user's clips. Answers the tab's handle, whose items open the Reels viewer.

    openStories: (
        ...args: [],
    ) => Effect<
        AssembledHandle<
            "StoriesViewer",
            "screen",
            { media_id?: string; media_type: number; user_id: string },
            StoriesViewerActions,
            Record<never, never>,
            ScreenHandle,
            "required",
            true,
            "user_id",
            unknown,
        >,
        ScreenEnterConcurrentError | ScreenDataError | ScreenEdgeInputError,
        never,
    >

    Taps the profile's story ring: opens the stories viewer over the profile on the first story the ring lists. A profile with no story has no ring to tap. Answers the viewer's handle.

    origin:
        | ScreenOpenersOf<AndroidScreens, "UserProfile">
        | ScreenItemOpenersOf<AndroidScreens, "UserProfile">

    The handle this one was opened from: the screen (or the item of its list) whose call opened it, typed as what can open this screen; undefined for a launch's or a tab's root.

    pipe: {
        <A>(this: A): A;
        <A, B = never>(this: A, ab: (_: A) => B): B;
        <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C;
        <A, B = never, C = never, D = never>(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
        ): D;
        <A, B = never, C = never, D = never, E = never>(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
        ): E;
        <A, B = never, C = never, D = never, E = never, F = never>(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
        ): F;
        <A, B = never, C = never, D = never, E = never, F = never, G = never>(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
        ): G;
        <
            A,
            B = never,
            C = never,
            D = never,
            E = never,
            F = never,
            G = never,
            H = never,
        >(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
            gh: (_: G) => H,
        ): H;
        <
            A,
            B = never,
            C = never,
            D = never,
            E = never,
            F = never,
            G = never,
            H = never,
            I = never,
        >(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
            gh: (_: G) => H,
            hi: (_: H) => I,
        ): I;
        <
            A,
            B = never,
            C = never,
            D = never,
            E = never,
            F = never,
            G = never,
            H = never,
            I = never,
            J = never,
        >(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
            gh: (_: G) => H,
            hi: (_: H) => I,
            ij: (_: I) => J,
        ): J;
        <
            A,
            B = never,
            C = never,
            D = never,
            E = never,
            F = never,
            G = never,
            H = never,
            I = never,
            J = never,
            K = never,
        >(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
            gh: (_: G) => H,
            hi: (_: H) => I,
            ij: (_: I) => J,
            jk: (_: J) => K,
        ): K;
        <
            A,
            B = never,
            C = never,
            D = never,
            E = never,
            F = never,
            G = never,
            H = never,
            I = never,
            J = never,
            K = never,
            L = never,
        >(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
            gh: (_: G) => H,
            hi: (_: H) => I,
            ij: (_: I) => J,
            jk: (_: J) => K,
            kl: (_: K) => L,
        ): L;
        <
            A,
            B = never,
            C = never,
            D = never,
            E = never,
            F = never,
            G = never,
            H = never,
            I = never,
            J = never,
            K = never,
            L = never,
            M = never,
        >(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
            gh: (_: G) => H,
            hi: (_: H) => I,
            ij: (_: I) => J,
            jk: (_: J) => K,
            kl: (_: K) => L,
            lm: (_: L) => M,
        ): M;
        <
            A,
            B = never,
            C = never,
            D = never,
            E = never,
            F = never,
            G = never,
            H = never,
            I = never,
            J = never,
            K = never,
            L = never,
            M = never,
            N = never,
        >(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
            gh: (_: G) => H,
            hi: (_: H) => I,
            ij: (_: I) => J,
            jk: (_: J) => K,
            kl: (_: K) => L,
            lm: (_: L) => M,
            mn: (_: M) => N,
        ): N;
        <
            A,
            B = never,
            C = never,
            D = never,
            E = never,
            F = never,
            G = never,
            H = never,
            I = never,
            J = never,
            K = never,
            L = never,
            M = never,
            N = never,
            O = never,
        >(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
            gh: (_: G) => H,
            hi: (_: H) => I,
            ij: (_: I) => J,
            jk: (_: J) => K,
            kl: (_: K) => L,
            lm: (_: L) => M,
            mn: (_: M) => N,
            no: (_: N) => O,
        ): O;
        <
            A,
            B = never,
            C = never,
            D = never,
            E = never,
            F = never,
            G = never,
            H = never,
            I = never,
            J = never,
            K = never,
            L = never,
            M = never,
            N = never,
            O = never,
            P = never,
        >(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
            gh: (_: G) => H,
            hi: (_: H) => I,
            ij: (_: I) => J,
            jk: (_: J) => K,
            kl: (_: K) => L,
            lm: (_: L) => M,
            mn: (_: M) => N,
            no: (_: N) => O,
            op: (_: O) => P,
        ): P;
        <
            A,
            B = never,
            C = never,
            D = never,
            E = never,
            F = never,
            G = never,
            H = never,
            I = never,
            J = never,
            K = never,
            L = never,
            M = never,
            N = never,
            O = never,
            P = never,
            Q = never,
        >(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
            gh: (_: G) => H,
            hi: (_: H) => I,
            ij: (_: I) => J,
            jk: (_: J) => K,
            kl: (_: K) => L,
            lm: (_: L) => M,
            mn: (_: M) => N,
            no: (_: N) => O,
            op: (_: O) => P,
            pq: (_: P) => Q,
        ): Q;
        <
            A,
            B = never,
            C = never,
            D = never,
            E = never,
            F = never,
            G = never,
            H = never,
            I = never,
            J = never,
            K = never,
            L = never,
            M = never,
            N = never,
            O = never,
            P = never,
            Q = never,
            R = never,
        >(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
            gh: (_: G) => H,
            hi: (_: H) => I,
            ij: (_: I) => J,
            jk: (_: J) => K,
            kl: (_: K) => L,
            lm: (_: L) => M,
            mn: (_: M) => N,
            no: (_: N) => O,
            op: (_: O) => P,
            pq: (_: P) => Q,
            qr: (_: Q) => R,
        ): R;
        <
            A,
            B = never,
            C = never,
            D = never,
            E = never,
            F = never,
            G = never,
            H = never,
            I = never,
            J = never,
            K = never,
            L = never,
            M = never,
            N = never,
            O = never,
            P = never,
            Q = never,
            R = never,
            S = never,
        >(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
            gh: (_: G) => H,
            hi: (_: H) => I,
            ij: (_: I) => J,
            jk: (_: J) => K,
            kl: (_: K) => L,
            lm: (_: L) => M,
            mn: (_: M) => N,
            no: (_: N) => O,
            op: (_: O) => P,
            pq: (_: P) => Q,
            qr: (_: Q) => R,
            rs: (_: R) => S,
        ): S;
        <
            A,
            B = never,
            C = never,
            D = never,
            E = never,
            F = never,
            G = never,
            H = never,
            I = never,
            J = never,
            K = never,
            L = never,
            M = never,
            N = never,
            O = never,
            P = never,
            Q = never,
            R = never,
            S = never,
            T = never,
        >(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
            gh: (_: G) => H,
            hi: (_: H) => I,
            ij: (_: I) => J,
            jk: (_: J) => K,
            kl: (_: K) => L,
            lm: (_: L) => M,
            mn: (_: M) => N,
            no: (_: N) => O,
            op: (_: O) => P,
            pq: (_: P) => Q,
            qr: (_: Q) => R,
            rs: (_: R) => S,
            st: (_: S) => T,
        ): T;
        <
            A,
            B = never,
            C = never,
            D = never,
            E = never,
            F = never,
            G = never,
            H = never,
            I = never,
            J = never,
            K = never,
            L = never,
            M = never,
            N = never,
            O = never,
            P = never,
            Q = never,
            R = never,
            S = never,
            T = never,
            U = never,
        >(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
            gh: (_: G) => H,
            hi: (_: H) => I,
            ij: (_: I) => J,
            jk: (_: J) => K,
            kl: (_: K) => L,
            lm: (_: L) => M,
            mn: (_: M) => N,
            no: (_: N) => O,
            op: (_: O) => P,
            pq: (_: P) => Q,
            qr: (_: Q) => R,
            rs: (_: R) => S,
            st: (_: S) => T,
            tu: (_: T) => U,
        ): U;
        <
            A,
            B = never,
            C = never,
            D = never,
            E = never,
            F = never,
            G = never,
            H = never,
            I = never,
            J = never,
            K = never,
            L = never,
            M = never,
            N = never,
            O = never,
            P = never,
            Q = never,
            R = never,
            S = never,
            T = never,
            U = never,
        >(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
            ef: (_: E) => F,
            fg: (_: F) => G,
            gh: (_: G) => H,
            hi: (_: H) => I,
            ij: (_: I) => J,
            jk: (_: J) => K,
            kl: (_: K) => L,
            lm: (_: L) => M,
            mn: (_: M) => N,
            no: (_: N) => O,
            op: (_: O) => P,
            pq: (_: P) => Q,
            qr: (_: Q) => R,
            rs: (_: R) => S,
            st: (_: S) => T,
            tu: (_: T) => U,
        ): U;
    }

    Passes the handle through the functions you give, left to right: handle.pipe(f, g) is g(f(handle)).

    raw: readonly RawAnswer[]

    The answers this visit received from the server, before any decoding; empty on a handle a checkpoint rebuilt.

    scrollGrid: (
        ...args: [],
    ) => Effect<
        ProfileGridPageAnswer & { raw: ActionRaw },
        ProfileScrollGridFailure,
        never,
    >

    Scrolls the media grid down: loads the page that follows the one the visit showed. Answers the page's tiles, numbered on from the visit's page, and the cursor of the page after it (absent on the last page); a profile whose first page was the last answers no tiles. Only the page after the visit's first is available.

    share: (
        ...args: [],
    ) => Effect<
        AssembledHandle<
            "DirectShareSheet",
            "screen",
            {
                share: | {
                    carousel_share_child_media_id?: string;
                    inventory_source?: string;
                    kind: "post";
                    media_id: string;
                    media_type: number;
                    ranking_info_token?: string;
                    send_attribution: "feed_timeline";
                }
                | {
                    carousel_share_child_media_id?: string;
                    kind: "carousel";
                    media_id: string;
                    media_type: number;
                    send_attribution: "feed_contextual_profile";
                }
                | { kind: "reel"; media_id: string }
                | { kind: "profile"; send_attribution: "profile"; user_id: string };
                threads: readonly {
                    is_group: boolean;
                    muted?: boolean;
                    preview: readonly {
                        client_context?: string;
                        command_count?: number;
                        edit_count?: number;
                        item_id: string;
                        item_type: string;
                        media?:
                            | {
                                height: number;
                                media_type: 1;
                                pk: string;
                                url: string;
                                width: number;
                            }
                            | {
                                height: number;
                                media_type: 2;
                                pk: string;
                                url: string;
                                width: number;
                            }
                            | { media_type: 8; pk: string; slides: readonly (...)[] };
                        message_ephemeral_lifetime_ms?: string;
                        text?: string;
                        timestamp: string;
                        user_id: string;
                    }[];
                    thread_id: string;
                    thread_title: string;
                    thread_v2_id?: string;
                    users: readonly {
                        fbid_v2?: string;
                        full_name: string;
                        pk: string;
                        username: string;
                    }[];
                }[];
            },
            DirectShareSheetActions,
            DirectShareSheetItems,
            ScreenHandle,
            "required",
            true,
            never,
            unknown,
        >,
        ScreenEnterConcurrentError
        | ScreenDataError
        | ScreenEdgeInputError,
        never,
    >

    Opens the profile's menu and taps "Share this profile": opens the Direct share sheet on this profile. Nothing is sent until you pick a conversation in the sheet. Answers the sheet's handle.

    suggestedUsers: readonly ScreenListItem<
        {
            at: "suggested";
            item: ScreenItemDefinition<
                "SuggestedUser",
                {
                    followRankingToken?: string;
                    fullName: string;
                    userId: string;
                    username: string;
                },
                {
                    followRankingToken?: string;
                    fullName: string;
                    userId: string;
                    username: string;
                },
                SuggestedUserState,
                never,
                never,
                SuggestedUserItemActions,
                undefined,
                never,
                never,
            >;
            key: "userId";
            source: ScreenItemNodes;
        },
        AssembledHandle<
            "UserProfile",
            "screen",
            {
                backgroundFailures: readonly {
                    message?: string;
                    request: | "story"
                    | "chaining"
                    | "recentSearchClick"
                    | "friendship"
                    | "highlights"
                    | "avatar"
                    | "inboxTray"
                    | "schoolBadge"
                    | "quickPromotion"
                    | "noteCtas"
                    | "selfProfileChaining"
                    | "creatorsTrial"
                    | "onboardingChecklist"
                    | "creatorDestinationType"
                    | "paymentsAccountDisabledRisk"
                    | "fbPayExperience"
                    | "donationsEligibility"
                    | "metaOneBenefitEligibility"
                    | "ringCreatorMetadata"
                    | "proHomeBadge"
                    | "proDashboard"
                    | "activityCount";
                    tag: string;
                }[];
                following?: boolean;
                gridCursor?: { gridItemsCursor: string; maxId: string };
                isPrivate: boolean;
                media: readonly {
                    authorId?: string;
                    carousel?: { children: readonly string[]; size?: number };
                    dashManifest?: string;
                    mediaId: string;
                    mediaType?: number;
                    position: number;
                    takenAt?: number;
                    trackingToken?: string;
                    videoDuration?: number;
                }[];
                stories: readonly {
                    id: string;
                    media_type: number;
                    pk: string;
                    taken_at?: number;
                }[];
                suggested: readonly {
                    followRankingToken?: string;
                    fullName: string;
                    userId: string;
                    username: string;
                }[];
                userId: string;
                username: string;
            },
            ProfileActions,
            ProfileItems,
            ScreenHandle,
            "required",
            true,
            "userId",
            AndroidScreens,
        >,
    >[]

    The suggested-users rail under the profile's header.

    toJSON: () => {
        backgroundFailures: readonly {
            message?: string;
            request: | "story"
            | "chaining"
            | "recentSearchClick"
            | "friendship"
            | "highlights"
            | "avatar"
            | "inboxTray"
            | "schoolBadge"
            | "quickPromotion"
            | "noteCtas"
            | "selfProfileChaining"
            | "creatorsTrial"
            | "onboardingChecklist"
            | "creatorDestinationType"
            | "paymentsAccountDisabledRisk"
            | "fbPayExperience"
            | "donationsEligibility"
            | "metaOneBenefitEligibility"
            | "ringCreatorMetadata"
            | "proHomeBadge"
            | "proDashboard"
            | "activityCount";
            tag: string;
        }[];
        following?: boolean;
        gridCursor?: { gridItemsCursor: string; maxId: string };
        isPrivate: boolean;
        media: readonly {
            authorId?: string;
            carousel?: { children: readonly string[]; size?: number };
            dashManifest?: string;
            mediaId: string;
            mediaType?: number;
            position: number;
            takenAt?: number;
            trackingToken?: string;
            videoDuration?: number;
        }[];
        stories: readonly {
            id: string;
            media_type: number;
            pk: string;
            taken_at?: number;
        }[];
        suggested: readonly {
            followRankingToken?: string;
            fullName: string;
            userId: string;
            username: string;
        }[];
        userId: string;
        username: string;
    }

    The handle as JSON: its data.

    userId: string

    The user whose profile this is: their id (pk).