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

    Interface DirectThreadHandle

    The handle of DirectThreadScreen: what you hold while the screen is open — its data, its actions (DirectThreadActions) and its lists (DirectThreadItems).

    interface DirectThreadHandle {
        back: ScreenBackEffect<ScreenOpenersOf<AndroidScreens, "DirectThread">>;
        checkpoint: () => Effect<
            ScreenCheckpoint<"DirectThread">,
            ScreenCheckpointFailure,
        >;
        data: {
            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: 1
                    | 2; 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;
            }[];
        };
        id: "DirectThread";
        kind: "screen";
        media: readonly (
            | {
                data: {
                    height: number;
                    media_type: 1;
                    pk: string;
                    url: string;
                    width: number;
                };
            } & Readonly<
                Omit<
                    Pick<
                        {
                            height: number;
                            media_type: 1;
                            pk: string;
                            url: string;
                            width: number;
                        },
                        never,
                    >,
                    never,
                >,
            > & {
                toJSON: () => {
                    height: number;
                    media_type: 1;
                    pk: string;
                    url: string;
                    width: number;
                };
            } & {
                id: "DirectPhoto";
                kind: "item";
                origin: 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: ...; pk: ...; url: ... }[];
                            }
                        )[];
                        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 (...)[] };
                            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,
                >;
            } & ScreenBoundActions<DirectPhotoItemActions, Record<never, never>> & {} & {} & {
                raw: unknown;
            } & {
                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;
                };
            } & ScreenItemIdentityOf<
                ScreenItemDefinition<
                    "DirectPhoto",
                    {
                        height: number;
                        media_type: 1;
                        pk: string;
                        url: string;
                        width: number;
                    },
                    {
                        height: number;
                        media_type: 1;
                        pk: string;
                        url: string;
                        width: number;
                    },
                    Record<never, never>,
                    never,
                    never,
                    DirectPhotoItemActions,
                    undefined,
                    never,
                    never,
                >,
                "pk",
            >
            | {
                data: {
                    height: number;
                    media_type: 2;
                    pk: string;
                    url: string;
                    width: number;
                };
            } & Readonly<
                Omit<
                    Pick<
                        {
                            height: number;
                            media_type: 2;
                            pk: string;
                            url: string;
                            width: number;
                        },
                        never,
                    >,
                    never,
                >,
            > & {
                toJSON: () => {
                    height: number;
                    media_type: 2;
                    pk: string;
                    url: string;
                    width: number;
                };
            } & {
                id: "DirectVideo";
                kind: "item";
                origin: 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: ...; pk: ...; url: ... }[];
                            }
                        )[];
                        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 (...)[] };
                            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,
                >;
            } & ScreenBoundActions<DirectVideoItemActions, Record<never, never>> & {} & {} & {
                raw: unknown;
            } & {
                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;
                };
            } & ScreenItemIdentityOf<
                ScreenItemDefinition<
                    "DirectVideo",
                    {
                        height: number;
                        media_type: 2;
                        pk: string;
                        url: string;
                        width: number;
                    },
                    {
                        height: number;
                        media_type: 2;
                        pk: string;
                        url: string;
                        width: number;
                    },
                    Record<never, never>,
                    never,
                    never,
                    DirectVideoItemActions,
                    undefined,
                    never,
                    never,
                >,
                "pk",
            >
            | {
                data: {
                    media_type: 8;
                    pk: string;
                    slides: readonly { media_type: 1 | 2; pk: string; url: string }[];
                };
            } & Readonly<
                Omit<
                    Pick<
                        {
                            media_type: 8;
                            pk: string;
                            slides: readonly { media_type: 1
                            | 2; pk: string; url: string }[];
                        },
                        never,
                    >,
                    never,
                >,
            > & {
                toJSON: () => {
                    media_type: 8;
                    pk: string;
                    slides: readonly { media_type: 1
                    | 2; pk: string; url: string }[];
                };
            } & {
                id: "DirectCarousel";
                kind: "item";
                origin: 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: ...; pk: ...; url: ... }[];
                            }
                        )[];
                        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 (...)[] };
                            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,
                >;
            } & ScreenBoundActions<DirectCarouselItemActions, Record<never, never>> & {} & {} & {
                raw: unknown;
            } & {
                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;
                };
            } & ScreenItemIdentityOf<
                ScreenItemDefinition<
                    "DirectCarousel",
                    {
                        media_type: 8;
                        pk: string;
                        slides: readonly { media_type: 1
                        | 2; pk: string; url: string }[];
                    },
                    {
                        media_type: 8;
                        pk: string;
                        slides: readonly { media_type: 1
                        | 2; pk: string; url: string }[];
                    },
                    Record<never, never>,
                    never,
                    never,
                    DirectCarouselItemActions,
                    undefined,
                    never,
                    never,
                >,
                "pk",
            >
        )[];
        messages: readonly ScreenListItem<
            {
                at: "messages";
                item: ScreenItemDefinition<
                    "DirectThreadMessage",
                    {
                        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: 1
                            | 2; pk: string; url: string }[];
                        };
                        message_ephemeral_lifetime_ms?: string;
                        text?: string;
                        timestamp: string;
                        user_id: string;
                    },
                    {
                        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: 1
                            | 2; pk: string; url: string }[];
                        };
                        message_ephemeral_lifetime_ms?: string;
                        text?: string;
                        timestamp: string;
                        user_id: string;
                    },
                    DirectThreadMessageState,
                    never,
                    never,
                    DirectThreadMessageItemActions,
                    | {
                        has_messages: boolean;
                        is_group: false;
                        ordinal_reserved?: boolean;
                        participants: readonly {
                            fbid_v2?: string;
                            full_name: string;
                            pk: string;
                            username: string;
                        }[];
                        peer_user_fbid?: string;
                        peer_user_id?: string;
                        send_attribution?: | "inbox"
                        | "inbox_new_message"
                        | "message_button"
                        | "direct_thread_creation_omnipicker";
                        thread_id: string;
                        thread_title: string;
                        thread_v2_id?: string;
                    }
                    | {
                        has_messages: boolean;
                        is_group: true;
                        lead_user_id?: string;
                        ordinal_reserved?: boolean;
                        participants: readonly {
                            fbid_v2?: string;
                            full_name: string;
                            pk: string;
                            username: string;
                        }[];
                        send_attribution?: | "inbox"
                        | "inbox_new_message"
                        | "message_button"
                        | "direct_thread_creation_omnipicker";
                        thread_id: string;
                        thread_title: string;
                        thread_v2_id?: string;
                    },
                    never,
                    "DirectDoodleEditor",
                >;
                key: "item_id";
                source: ScreenItemNodes;
            },
            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,
            >,
        >[];
        openCustomizeChat: (
            ...args: [],
        ) => Effect<
            AssembledHandle<
                "DirectCustomizeChat",
                "screen",
                { thread_v2_id: string },
                DirectCustomizeChatActions,
                Record<never, never>,
                ScreenHandle,
                "required",
                true,
                "thread_v2_id",
                AndroidScreens,
            >,
            ScreenEnterConcurrentError | ScreenDataError | ScreenEdgeInputError,
            never,
        >;
        openImagine: (
            ...args: [],
        ) => Effect<
            AssembledHandle<
                "DirectImagineCreation",
                "screen",
                { surface_session_id: string; thread_id: string },
                DirectImagineCreationActions,
                Record<never, never>,
                ScreenHandle,
                "required",
                true,
                never,
                AndroidScreens,
            >,

                | IgApiError
                | RequestError
                | ParseError
                | TransportError
                | ScreenEnterConcurrentError
                | ScreenDataError
                | ScreenEdgeInputError,
            never,
        >;
        openMediaPicker: (
            ...args: [],
        ) => Effect<
            AssembledHandle<
                "DirectMediaPickerPhotos",
                "screen",
                {
                    send_attribution?: | "inbox"
                    | "inbox_new_message"
                    | "message_button"
                    | "direct_thread_creation_omnipicker";
                    thread_id: string;
                },
                DirectMediaPickerPhotosActions,
                Record<never, never>,
                ScreenHandle,
                "required",
                true,
                never,
                AndroidScreens,
            >,

                | IgApiError
                | RequestError
                | ParseError
                | TransportError
                | ScreenEnterConcurrentError
                | ScreenDataError
                | ScreenEdgeInputError,
            never,
        >;
        openStickerTray: (
            ...args: [],
        ) => Effect<
            AssembledHandle<
                "DirectStickerTabTray",
                "screen",
                {
                    send_attribution?: | "inbox"
                    | "inbox_new_message"
                    | "message_button"
                    | "direct_thread_creation_omnipicker";
                    stickers: readonly { alt_text?: string; sticker_id: string }[];
                    thread_id: string;
                },
                DirectStickerTrayActions,
                Record<never, never>,
                ScreenHandle,
                "required",
                true,
                never,
                AndroidScreens,
            >,

                | IgApiError
                | RequestError
                | ParseError
                | TransportError
                | ScreenEnterConcurrentError
                | ScreenDataError
                | ScreenEdgeInputError,
            never,
        >;
        openThreadDetails: (
            ...args: [],
        ) => Effect<
            AssembledHandle<
                "DirectThreadDetails",
                "screen",
                | {
                    is_group: false;
                    peer_user_fbid?: string;
                    peer_user_id?: string;
                    thread_title: string;
                    thread_v2_id: string;
                }
                | {
                    is_group: true;
                    lead_user_id?: string;
                    thread_title: string;
                    thread_v2_id: string;
                },
                DirectThreadDetailsActions,
                Record<never, never>,
                ScreenHandle,
                "required",
                true,
                "thread_v2_id",
                AndroidScreens,
            >,

                | IgApiError
                | RequestError
                | ParseError
                | TransportError
                | ScreenEnterConcurrentError
                | ScreenDataError
                | ScreenEdgeInputError,
            never,
        >;
        origin: | ScreenOpenersOf<AndroidScreens, "DirectThread">
        | ScreenItemOpenersOf<AndroidScreens, "DirectThread">;
        participants: readonly ScreenListItem<
            {
                at: "users";
                item: ScreenItemDefinition<
                    "DirectThreadParticipant",
                    { fbid_v2?: string; full_name: string; pk: string; username: string },
                    { fbid_v2?: string; full_name: string; pk: string; username: string },
                    DirectThreadParticipantState,
                    never,
                    never,
                    DirectThreadParticipantItemActions,

                        | {
                            has_messages: boolean;
                            is_group: false;
                            ordinal_reserved?: boolean;
                            participants: readonly {
                                fbid_v2?: string;
                                full_name: string;
                                pk: string;
                                username: string;
                            }[];
                            peer_user_fbid?: string;
                            peer_user_id?: string;
                            send_attribution?: | "inbox"
                            | "inbox_new_message"
                            | "message_button"
                            | "direct_thread_creation_omnipicker";
                            thread_id: string;
                            thread_title: string;
                            thread_v2_id?: string;
                        }
                        | {
                            has_messages: boolean;
                            is_group: true;
                            lead_user_id?: string;
                            ordinal_reserved?: boolean;
                            participants: readonly {
                                fbid_v2?: string;
                                full_name: string;
                                pk: string;
                                username: string;
                            }[];
                            send_attribution?: | "inbox"
                            | "inbox_new_message"
                            | "message_button"
                            | "direct_thread_creation_omnipicker";
                            thread_id: string;
                            thread_title: string;
                            thread_v2_id?: string;
                        },
                    never,
                    never,
                >;
                key: "pk";
                source: ScreenItemNodes;
            },
            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,
            >,
        >[];
        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[];
        sendMessage: (
            ...args: [text: string],
        ) => Effect<
            {
                action: string;
                client_context: string;
                message_metadata: DirectBroadcastResponseMessageMetadata[];
                payload: DirectBroadcastResponsePayload;
                status: string;
                status_code: string;
            } & { raw: ActionRaw },

                | IgApiError
                | RequestError
                | ParseError
                | TransportError
                | ScreenEnterConcurrentError,
            never,
        >;
        sendVoice: (
            ...args: [input: { file: Buffer; waveform?: readonly number[] }],
        ) => Effect<
            {
                action: string;
                client_context: string;
                message_metadata: DirectBroadcastResponseMessageMetadata[];
                payload: DirectBroadcastResponsePayload;
                status: string;
                status_code: string;
            } & { raw: ActionRaw },
            IgApiError | Error | ScreenEnterConcurrentError,
            never,
        >;
        toJSON: () => {
            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: 1
                    | 2; 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;
            }[];
        };
    }
    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<"DirectThread">,
        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: {
        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: 1
                | 2; 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;
        }[];
    }

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

    id: "DirectThread"

    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.

    media: readonly (
        | {
            data: {
                height: number;
                media_type: 1;
                pk: string;
                url: string;
                width: number;
            };
        } & Readonly<
            Omit<
                Pick<
                    {
                        height: number;
                        media_type: 1;
                        pk: string;
                        url: string;
                        width: number;
                    },
                    never,
                >,
                never,
            >,
        > & {
            toJSON: () => {
                height: number;
                media_type: 1;
                pk: string;
                url: string;
                width: number;
            };
        } & {
            id: "DirectPhoto";
            kind: "item";
            origin: 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: ...; pk: ...; url: ... }[];
                        }
                    )[];
                    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 (...)[] };
                        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,
            >;
        } & ScreenBoundActions<DirectPhotoItemActions, Record<never, never>> & {} & {} & {
            raw: unknown;
        } & {
            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;
            };
        } & ScreenItemIdentityOf<
            ScreenItemDefinition<
                "DirectPhoto",
                { height: number; media_type: 1; pk: string; url: string; width: number },
                { height: number; media_type: 1; pk: string; url: string; width: number },
                Record<never, never>,
                never,
                never,
                DirectPhotoItemActions,
                undefined,
                never,
                never,
            >,
            "pk",
        >
        | {
            data: {
                height: number;
                media_type: 2;
                pk: string;
                url: string;
                width: number;
            };
        } & Readonly<
            Omit<
                Pick<
                    {
                        height: number;
                        media_type: 2;
                        pk: string;
                        url: string;
                        width: number;
                    },
                    never,
                >,
                never,
            >,
        > & {
            toJSON: () => {
                height: number;
                media_type: 2;
                pk: string;
                url: string;
                width: number;
            };
        } & {
            id: "DirectVideo";
            kind: "item";
            origin: 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: ...; pk: ...; url: ... }[];
                        }
                    )[];
                    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 (...)[] };
                        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,
            >;
        } & ScreenBoundActions<DirectVideoItemActions, Record<never, never>> & {} & {} & {
            raw: unknown;
        } & {
            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;
            };
        } & ScreenItemIdentityOf<
            ScreenItemDefinition<
                "DirectVideo",
                { height: number; media_type: 2; pk: string; url: string; width: number },
                { height: number; media_type: 2; pk: string; url: string; width: number },
                Record<never, never>,
                never,
                never,
                DirectVideoItemActions,
                undefined,
                never,
                never,
            >,
            "pk",
        >
        | {
            data: {
                media_type: 8;
                pk: string;
                slides: readonly { media_type: 1 | 2; pk: string; url: string }[];
            };
        } & Readonly<
            Omit<
                Pick<
                    {
                        media_type: 8;
                        pk: string;
                        slides: readonly { media_type: 1
                        | 2; pk: string; url: string }[];
                    },
                    never,
                >,
                never,
            >,
        > & {
            toJSON: () => {
                media_type: 8;
                pk: string;
                slides: readonly { media_type: 1
                | 2; pk: string; url: string }[];
            };
        } & {
            id: "DirectCarousel";
            kind: "item";
            origin: 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: ...; pk: ...; url: ... }[];
                        }
                    )[];
                    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 (...)[] };
                        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,
            >;
        } & ScreenBoundActions<DirectCarouselItemActions, Record<never, never>> & {} & {} & {
            raw: unknown;
        } & {
            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;
            };
        } & ScreenItemIdentityOf<
            ScreenItemDefinition<
                "DirectCarousel",
                {
                    media_type: 8;
                    pk: string;
                    slides: readonly { media_type: 1
                    | 2; pk: string; url: string }[];
                },
                {
                    media_type: 8;
                    pk: string;
                    slides: readonly { media_type: 1
                    | 2; pk: string; url: string }[];
                },
                Record<never, never>,
                never,
                never,
                DirectCarouselItemActions,
                undefined,
                never,
                never,
            >,
            "pk",
        >
    )[]

    The photos, videos and carousels shared in the conversation, told apart by media_type.

    messages: readonly ScreenListItem<
        {
            at: "messages";
            item: ScreenItemDefinition<
                "DirectThreadMessage",
                {
                    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: 1
                        | 2; pk: string; url: string }[];
                    };
                    message_ephemeral_lifetime_ms?: string;
                    text?: string;
                    timestamp: string;
                    user_id: string;
                },
                {
                    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: 1
                        | 2; pk: string; url: string }[];
                    };
                    message_ephemeral_lifetime_ms?: string;
                    text?: string;
                    timestamp: string;
                    user_id: string;
                },
                DirectThreadMessageState,
                never,
                never,
                DirectThreadMessageItemActions,
                | {
                    has_messages: boolean;
                    is_group: false;
                    ordinal_reserved?: boolean;
                    participants: readonly {
                        fbid_v2?: string;
                        full_name: string;
                        pk: string;
                        username: string;
                    }[];
                    peer_user_fbid?: string;
                    peer_user_id?: string;
                    send_attribution?: | "inbox"
                    | "inbox_new_message"
                    | "message_button"
                    | "direct_thread_creation_omnipicker";
                    thread_id: string;
                    thread_title: string;
                    thread_v2_id?: string;
                }
                | {
                    has_messages: boolean;
                    is_group: true;
                    lead_user_id?: string;
                    ordinal_reserved?: boolean;
                    participants: readonly {
                        fbid_v2?: string;
                        full_name: string;
                        pk: string;
                        username: string;
                    }[];
                    send_attribution?: | "inbox"
                    | "inbox_new_message"
                    | "message_button"
                    | "direct_thread_creation_omnipicker";
                    thread_id: string;
                    thread_title: string;
                    thread_v2_id?: string;
                },
                never,
                "DirectDoodleEditor",
            >;
            key: "item_id";
            source: ScreenItemNodes;
        },
        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,
        >,
    >[]

    The conversation's messages, in the server's order.

    openCustomizeChat: (
        ...args: [],
    ) => Effect<
        AssembledHandle<
            "DirectCustomizeChat",
            "screen",
            { thread_v2_id: string },
            DirectCustomizeChatActions,
            Record<never, never>,
            ScreenHandle,
            "required",
            true,
            "thread_v2_id",
            AndroidScreens,
        >,
        ScreenEnterConcurrentError | ScreenDataError | ScreenEdgeInputError,
        never,
    >

    Taps Customize chat and opens that screen for this conversation. Answers its handle.

    openImagine: (
        ...args: [],
    ) => Effect<
        AssembledHandle<
            "DirectImagineCreation",
            "screen",
            { surface_session_id: string; thread_id: string },
            DirectImagineCreationActions,
            Record<never, never>,
            ScreenHandle,
            "required",
            true,
            never,
            AndroidScreens,
        >,

            | IgApiError
            | RequestError
            | ParseError
            | TransportError
            | ScreenEnterConcurrentError
            | ScreenDataError
            | ScreenEdgeInputError,
        never,
    >

    Taps the composer's "+" and opens it on AI images: the Imagine flow. Answers its handle.

    openMediaPicker: (
        ...args: [],
    ) => Effect<
        AssembledHandle<
            "DirectMediaPickerPhotos",
            "screen",
            {
                send_attribution?: | "inbox"
                | "inbox_new_message"
                | "message_button"
                | "direct_thread_creation_omnipicker";
                thread_id: string;
            },
            DirectMediaPickerPhotosActions,
            Record<never, never>,
            ScreenHandle,
            "required",
            true,
            never,
            AndroidScreens,
        >,

            | IgApiError
            | RequestError
            | ParseError
            | TransportError
            | ScreenEnterConcurrentError
            | ScreenDataError
            | ScreenEdgeInputError,
        never,
    >

    Taps the composer's "+" and opens it on the gallery: the photo and video picker. Answers its handle.

    openStickerTray: (
        ...args: [],
    ) => Effect<
        AssembledHandle<
            "DirectStickerTabTray",
            "screen",
            {
                send_attribution?: | "inbox"
                | "inbox_new_message"
                | "message_button"
                | "direct_thread_creation_omnipicker";
                stickers: readonly { alt_text?: string; sticker_id: string }[];
                thread_id: string;
            },
            DirectStickerTrayActions,
            Record<never, never>,
            ScreenHandle,
            "required",
            true,
            never,
            AndroidScreens,
        >,

            | IgApiError
            | RequestError
            | ParseError
            | TransportError
            | ScreenEnterConcurrentError
            | ScreenDataError
            | ScreenEdgeInputError,
        never,
    >

    Taps the composer's "+" and opens it on stickers: the sticker tray. Answers its handle.

    openThreadDetails: (
        ...args: [],
    ) => Effect<
        AssembledHandle<
            "DirectThreadDetails",
            "screen",
            | {
                is_group: false;
                peer_user_fbid?: string;
                peer_user_id?: string;
                thread_title: string;
                thread_v2_id: string;
            }
            | {
                is_group: true;
                lead_user_id?: string;
                thread_title: string;
                thread_v2_id: string;
            },
            DirectThreadDetailsActions,
            Record<never, never>,
            ScreenHandle,
            "required",
            true,
            "thread_v2_id",
            AndroidScreens,
        >,

            | IgApiError
            | RequestError
            | ParseError
            | TransportError
            | ScreenEnterConcurrentError
            | ScreenDataError
            | ScreenEdgeInputError,
        never,
    >

    Taps the conversation's name at the top and opens the thread's details. Answers their handle.

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

    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.

    participants: readonly ScreenListItem<
        {
            at: "users";
            item: ScreenItemDefinition<
                "DirectThreadParticipant",
                { fbid_v2?: string; full_name: string; pk: string; username: string },
                { fbid_v2?: string; full_name: string; pk: string; username: string },
                DirectThreadParticipantState,
                never,
                never,
                DirectThreadParticipantItemActions,

                    | {
                        has_messages: boolean;
                        is_group: false;
                        ordinal_reserved?: boolean;
                        participants: readonly {
                            fbid_v2?: string;
                            full_name: string;
                            pk: string;
                            username: string;
                        }[];
                        peer_user_fbid?: string;
                        peer_user_id?: string;
                        send_attribution?: | "inbox"
                        | "inbox_new_message"
                        | "message_button"
                        | "direct_thread_creation_omnipicker";
                        thread_id: string;
                        thread_title: string;
                        thread_v2_id?: string;
                    }
                    | {
                        has_messages: boolean;
                        is_group: true;
                        lead_user_id?: string;
                        ordinal_reserved?: boolean;
                        participants: readonly {
                            fbid_v2?: string;
                            full_name: string;
                            pk: string;
                            username: string;
                        }[];
                        send_attribution?: | "inbox"
                        | "inbox_new_message"
                        | "message_button"
                        | "direct_thread_creation_omnipicker";
                        thread_id: string;
                        thread_title: string;
                        thread_v2_id?: string;
                    },
                never,
                never,
            >;
            key: "pk";
            source: ScreenItemNodes;
        },
        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,
        >,
    >[]

    The people in the conversation.

    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.

    sendMessage: (
        ...args: [text: string],
    ) => Effect<
        {
            action: string;
            client_context: string;
            message_metadata: DirectBroadcastResponseMessageMetadata[];
            payload: DirectBroadcastResponsePayload;
            status: string;
            status_code: string;
        } & { raw: ActionRaw },

            | IgApiError
            | RequestError
            | ParseError
            | TransportError
            | ScreenEnterConcurrentError,
        never,
    >

    Types a message and taps Send: sends text to the conversation — a text, or, when the text carries a URL, a link message, as the composer decides by the text. Answers the sent message.

    sendVoice: (
        ...args: [input: { file: Buffer; waveform?: readonly number[] }],
    ) => Effect<
        {
            action: string;
            client_context: string;
            message_metadata: DirectBroadcastResponseMessageMetadata[];
            payload: DirectBroadcastResponsePayload;
            status: string;
            status_code: string;
        } & { raw: ActionRaw },
        IgApiError | Error | ScreenEnterConcurrentError,
        never,
    >

    Records a voice message in the composer and sends it: file is the take, waveform its samples (measured from the take when you give none). Answers the sent message.

    toJSON: () => {
        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: 1
                | 2; 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;
        }[];
    }

    The handle as JSON: its data.