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

    Interface ReelsViewerScreenDefinition

    The viewer's definition type, named: the feed's handle carries this screen's type through its openReelsTab edge, and the platform's launch declaration would otherwise expand the whole swipeable-feed type and exceed the compiler's declaration-serialization limit (the same reason androidScreens names its type). An interface, not an alias, so declaration emit prints its name at every use site instead of inlining the type.

    interface ReelsViewerScreenDefinition {
        "~opens"?: (target: never) => void;
        "~top"?: ScreenTopLevelMarker<never>;
        actions: { openCamera: ReelsViewerCameraEdge } & Omit<
            ScreenFeedMembers<
                {
                    initial?: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    maxId?: string;
                },
                {
                    at: "entries";
                    item: ScreenItemDefinition<
                        "ReelsViewerReel",
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        ReelsViewerReelState,
                        never,
                        never,
                        {
                            like: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                (...) & (...)
                                | (...) & (...),

                                    | IgApiError
                                    | RequestError
                                    | ParseError
                                    | TransportError
                                    | SchemaError
                                    | GraphqlRootFieldMissingError
                                    | ScreenEnterConcurrentError,
                                | PlainJsonApiHttp
                                | Signature
                                | MobileSession
                                | MobileDevice
                                | GraphqlJsonHttp
                                | MobileApplication
                                | NavigationWire
                                | MobileNavigation
                                | ScreenStack,
                            >;
                            openComments: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<
                                    ScreenDefinition<
                                        "MediaComments",
                                        "screen",
                                        (...)
                                        | (...),
                                        (...) | (...),
                                        (...) | (...) | (...) | (...),
                                        (...) | (...) | (...) | (...) | (...),

                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...),
                                        { comment: ... },
                                        Record<(...), (...)>,
                                        never,
                                        "mediaId",
                                    >,
                                    readonly [{ commentSessionId?: ... }],
                                    "button",
                                    AndroidScreens,
                                >,
                                (
                                    ...args: readonly [{ commentSessionId?: ... }],
                                ) => Effect<
                                    AssembledHandle<
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                    >,
                                    (...) | (...) | (...) | (...) | (...) | (...) | (...),

                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...),
                                >,
                            >;
                            unlike: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                ActionValue<string>,

                                    | IgApiError
                                    | RequestError
                                    | ParseError
                                    | TransportError
                                    | ScreenEnterConcurrentError,
                                | MobileDevice
                                | GraphqlJsonHttp
                                | MobileApplication
                                | NavigationWire
                                | MobileNavigation
                                | ScreenStack,
                            >;
                        },
                        {
                            facts: {
                                chaining: {
                                    chainingPosition?: string
                                    | number;
                                    chainingSeedMediaId?: string;
                                    chainingSessionId?: string;
                                    clientPosition?: string | number;
                                    mediaPctWatched?: string | number;
                                    rankingSessionId?: string;
                                    storyRankingToken?: string;
                                };
                                startPosition: number;
                            };
                        },
                        never,
                    >;
                    key: "key";
                    source: { first: ScreenItemNodes; next: ScreenItemNodes };
                },
                IgApiError
                | RequestError
                | ParseError
                | TransportError
                | ScreenDataError,
                PlainJsonApiHttp | MobileDevice | NavigationWire | AndroidClientAddress,
            >,
            "stream",
        > & ScreenSwipeMembers<
            {
                initial?: {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                };
                maxId?: string;
            },
            {
                at: "entries";
                item: ScreenItemDefinition<
                    "ReelsViewerReel",
                    {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        position: number;
                    },
                    {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        position: number;
                    },
                    ReelsViewerReelState,
                    never,
                    never,
                    {
                        like: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            { data: ... } & { raw: ... }
                            | MediaLikeRestResponse & { raw: ... },

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | SchemaError
                                | GraphqlRootFieldMissingError
                                | ScreenEnterConcurrentError,
                            | PlainJsonApiHttp
                            | Signature
                            | MobileSession
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | NavigationWire
                            | MobileNavigation
                            | ScreenStack,
                        >;
                        openComments: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => ScreenEdgeBound<
                            ScreenEdgeShape<
                                ScreenDefinition<
                                    "MediaComments",
                                    "screen",
                                    | {
                                        carousel?: ...;
                                        chainingSeedMediaId?: ...;
                                        commentSessionId?: ...;
                                        feedPosition?: ...;
                                        mediaId: ...;
                                        rankingSessionId?: ...;
                                        surface: ...;
                                    }
                                    | {
                                        chainingPosition?: ...;
                                        chainingSeedMediaId?: ...;
                                        chainingSessionId?: ...;
                                        clientPosition?: ...;
                                        commentSessionId?: ...;
                                        mediaId: ...;
                                        rankingSessionId?: ...;
                                        storyRankingToken?: ...;
                                        surface: ...;
                                    },
                                    | {
                                        commentSessionId: ...;
                                        createdMediaNoteIds: ...;
                                        mediaId: ...;
                                        slide?: ...;
                                        surface: ...;
                                    }
                                    | {
                                        commentSessionId: ...;
                                        createdMediaNoteIds: ...;
                                        mediaId: ...;
                                        surface: ...;
                                    },
                                    (...) & (...)
                                    | never
                                    | never
                                    | (...) & (...),

                                        | IgApiError
                                        | RequestError
                                        | ParseError
                                        | TransportError
                                        | ScreenDataError,
                                    | PlainJsonApiHttp
                                    | MobileSession
                                    | MobileDevice
                                    | GraphqlJsonHttp
                                    | MobileApplication
                                    | MobileNavigation
                                    | JsonResponseHttp
                                    | MobileUserFlows
                                    | MediaCommentsReads
                                    | AndroidQuickPromotionStash,
                                    { comment: (self: ..., state: ...) => ... },
                                    Record<never, never>,
                                    never,
                                    "mediaId",
                                >,
                                readonly [{ commentSessionId?: (...) | (...) }],
                                "button",
                                AndroidScreens,
                            >,
                            (
                                ...args: readonly [{ commentSessionId?: (...) | (...) }],
                            ) => Effect<
                                AssembledHandle<
                                    "MediaComments",
                                    "screen",
                                    (...)
                                    | (...),
                                    { comment: ... },
                                    Record<(...), (...)>,
                                    ScreenHandle,
                                    "required",
                                    true,
                                    "mediaId",
                                    AndroidScreens,
                                >,

                                    | IgApiError
                                    | RequestError
                                    | ParseError
                                    | TransportError
                                    | ScreenDataError
                                    | ScreenEnterConcurrentError
                                    | ScreenEdgeInputError,
                                | PlainJsonApiHttp
                                | MobileSession
                                | MobileDevice
                                | GraphqlJsonHttp
                                | MobileApplication
                                | MobileNavigation
                                | JsonResponseHttp
                                | MobileUserFlows
                                | ScreenStack
                                | MediaCommentsReads
                                | AndroidQuickPromotionStash
                                | ScreenCatalog,
                            >,
                        >;
                        unlike: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            ActionValue<string>,

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | ScreenEnterConcurrentError,
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | NavigationWire
                            | MobileNavigation
                            | ScreenStack,
                        >;
                    },
                    {
                        facts: {
                            chaining: {
                                chainingPosition?: string
                                | number;
                                chainingSeedMediaId?: string;
                                chainingSessionId?: string;
                                clientPosition?: string | number;
                                mediaPctWatched?: string | number;
                                rankingSessionId?: string;
                                storyRankingToken?: string;
                            };
                            startPosition: number;
                        };
                    },
                    never,
                >;
                key: "key";
                source: { first: ScreenItemNodes; next: ScreenItemNodes };
            },
            ScreenFeedSwipeFailure<
                | IgApiError
                | RequestError
                | ParseError
                | TransportError
                | ScreenDataError,
                {
                    at: "entries";
                    item: ScreenItemDefinition<
                        "ReelsViewerReel",
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        ReelsViewerReelState,
                        never,
                        never,
                        {
                            like: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                (...) & (...)
                                | (...) & (...),

                                    | IgApiError
                                    | RequestError
                                    | ParseError
                                    | TransportError
                                    | SchemaError
                                    | GraphqlRootFieldMissingError
                                    | ScreenEnterConcurrentError,
                                | PlainJsonApiHttp
                                | Signature
                                | MobileSession
                                | MobileDevice
                                | GraphqlJsonHttp
                                | MobileApplication
                                | NavigationWire
                                | MobileNavigation
                                | ScreenStack,
                            >;
                            openComments: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<
                                    ScreenDefinition<
                                        "MediaComments",
                                        "screen",
                                        (...)
                                        | (...),
                                        (...) | (...),
                                        (...) | (...) | (...) | (...),
                                        (...) | (...) | (...) | (...) | (...),

                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...),
                                        { comment: ... },
                                        Record<(...), (...)>,
                                        never,
                                        "mediaId",
                                    >,
                                    readonly [{ commentSessionId?: ... }],
                                    "button",
                                    AndroidScreens,
                                >,
                                (
                                    ...args: readonly [{ commentSessionId?: ... }],
                                ) => Effect<
                                    AssembledHandle<
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                    >,
                                    (...) | (...) | (...) | (...) | (...) | (...) | (...),

                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...),
                                >,
                            >;
                            unlike: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                ActionValue<string>,

                                    | IgApiError
                                    | RequestError
                                    | ParseError
                                    | TransportError
                                    | ScreenEnterConcurrentError,
                                | MobileDevice
                                | GraphqlJsonHttp
                                | MobileApplication
                                | NavigationWire
                                | MobileNavigation
                                | ScreenStack,
                            >;
                        },
                        {
                            facts: {
                                chaining: {
                                    chainingPosition?: string
                                    | number;
                                    chainingSeedMediaId?: string;
                                    chainingSessionId?: string;
                                    clientPosition?: string | number;
                                    mediaPctWatched?: string | number;
                                    rankingSessionId?: string;
                                    storyRankingToken?: string;
                                };
                                startPosition: number;
                            };
                        },
                        never,
                    >;
                    key: "key";
                    source: { first: ScreenItemNodes; next: ScreenItemNodes };
                },
            >,
            ScreenFeedPageServices<
                | PlainJsonApiHttp
                | MobileDevice
                | NavigationWire
                | AndroidClientAddress,
                {
                    at: "entries";
                    item: ScreenItemDefinition<
                        "ReelsViewerReel",
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        ReelsViewerReelState,
                        never,
                        never,
                        {
                            like: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                (...) & (...)
                                | (...) & (...),

                                    | IgApiError
                                    | RequestError
                                    | ParseError
                                    | TransportError
                                    | SchemaError
                                    | GraphqlRootFieldMissingError
                                    | ScreenEnterConcurrentError,
                                | PlainJsonApiHttp
                                | Signature
                                | MobileSession
                                | MobileDevice
                                | GraphqlJsonHttp
                                | MobileApplication
                                | NavigationWire
                                | MobileNavigation
                                | ScreenStack,
                            >;
                            openComments: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<
                                    ScreenDefinition<
                                        "MediaComments",
                                        "screen",
                                        (...)
                                        | (...),
                                        (...) | (...),
                                        (...) | (...) | (...) | (...),
                                        (...) | (...) | (...) | (...) | (...),

                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...),
                                        { comment: ... },
                                        Record<(...), (...)>,
                                        never,
                                        "mediaId",
                                    >,
                                    readonly [{ commentSessionId?: ... }],
                                    "button",
                                    AndroidScreens,
                                >,
                                (
                                    ...args: readonly [{ commentSessionId?: ... }],
                                ) => Effect<
                                    AssembledHandle<
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                    >,
                                    (...) | (...) | (...) | (...) | (...) | (...) | (...),

                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...),
                                >,
                            >;
                            unlike: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                ActionValue<string>,

                                    | IgApiError
                                    | RequestError
                                    | ParseError
                                    | TransportError
                                    | ScreenEnterConcurrentError,
                                | MobileDevice
                                | GraphqlJsonHttp
                                | MobileApplication
                                | NavigationWire
                                | MobileNavigation
                                | ScreenStack,
                            >;
                        },
                        {
                            facts: {
                                chaining: {
                                    chainingPosition?: string
                                    | number;
                                    chainingSeedMediaId?: string;
                                    chainingSessionId?: string;
                                    clientPosition?: string | number;
                                    mediaPctWatched?: string | number;
                                    rankingSessionId?: string;
                                    storyRankingToken?: string;
                                };
                                startPosition: number;
                            };
                        },
                        never,
                    >;
                    key: "key";
                    source: { first: ScreenItemNodes; next: ScreenItemNodes };
                },
            >,
        >;
        afterAssemble: | ((handle: ScreenHandle) => Effect<void, never, never>)
        | undefined;
        beforeLeave?: (
            left: ScreenBeforeLeave<
                | {
                    chaining?: {
                        chainingSessionId?: string;
                        mediaPctWatched?: string
                        | number;
                        rankingSessionId?: string;
                    };
                    index: number;
                    reels: readonly {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    }[];
                }
                | {
                    chainingPosition?: string
                    | number;
                    chainingSeedMediaId?: string;
                    chainingSessionId?: string;
                    clientPosition?: string | number;
                    friendsLane?: false;
                    media?: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    mediaPctWatched?: string
                    | number;
                    rankingSessionId?: string;
                    storyRankingToken?: string;
                },
                {
                    entries: readonly {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        position: number;
                    }[];
                    next?: { maxId: string };
                    opensOnOneReel?: boolean;
                },
                ScreenFeedState<
                    {
                        initial?: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        maxId?: string;
                    },
                    ReelsViewerFacts,
                >,
            >,
        ) => Effect<
            void,
            never,
            | PlainJsonApiHttp
            | Signature
            | MobileSession
            | MobileDevice
            | GraphqlJsonHttp
            | MobileApplication
            | NavigationWire
            | MobileNavigation
            | MobileUserFlows
            | AndroidThrottlingDetector
            | AndroidClientAddress,
        >;
        beforeResume?: (
            returning: ScreenBeforeResume<
                | {
                    chaining?: {
                        chainingSessionId?: string;
                        mediaPctWatched?: string
                        | number;
                        rankingSessionId?: string;
                    };
                    index: number;
                    reels: readonly {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    }[];
                }
                | {
                    chainingPosition?: string
                    | number;
                    chainingSeedMediaId?: string;
                    chainingSessionId?: string;
                    clientPosition?: string | number;
                    friendsLane?: false;
                    media?: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    mediaPctWatched?: string
                    | number;
                    rankingSessionId?: string;
                    storyRankingToken?: string;
                },
                {
                    entries: readonly {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        position: number;
                    }[];
                    next?: { maxId: string };
                    opensOnOneReel?: boolean;
                },
                ScreenFeedState<
                    {
                        initial?: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        maxId?: string;
                    },
                    ReelsViewerFacts,
                >,
            >,
        ) => Effect<
            void,
            never,
            | PlainJsonApiHttp
            | Signature
            | MobileSession
            | MobileDevice
            | GraphqlJsonHttp
            | MobileApplication
            | NavigationWire
            | MobileNavigation
            | MobileUserFlows
            | AndroidThrottlingDetector
            | AndroidClientAddress,
        >;
        catalogEntry: () => ScreenCatalogEntry<
            ScreenStepFailure<
                | IgApiError
                | RequestError
                | ParseError
                | TransportError
                | ScreenDataError,
                ScreenFeedItems<
                    {
                        at: "entries";
                        item: ScreenItemDefinition<
                            "ReelsViewerReel",
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: (...)
                                    | (...); pk?: (...) | (...) };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: (...)
                                    | (...); pk?: (...) | (...) };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            ReelsViewerReelState,
                            never,
                            never,
                            {
                                like: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (
                                    ...args: [],
                                ) => Effect<
                                    (...)
                                    | (...),
                                    (...) | (...) | (...) | (...) | (...) | (...) | (...),

                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...),
                                >;
                                openComments: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => ScreenEdgeBound<
                                    ScreenEdgeShape<
                                        ScreenDefinition<
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                        >,
                                        readonly [(...)],
                                        "button",
                                        AndroidScreens,
                                    >,
                                    (...args: readonly [(...)]) => Effect<(...), (...), (...)>,
                                >;
                                unlike: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (
                                    ...args: [],
                                ) => Effect<
                                    ActionValue<(...)>,
                                    (...) | (...) | (...) | (...) | (...),
                                    (...) | (...) | (...) | (...) | (...) | (...),
                                >;
                            },
                            {
                                facts: {
                                    chaining: {
                                        chainingPosition?: string
                                        | number;
                                        chainingSeedMediaId?: string;
                                        chainingSessionId?: string;
                                        clientPosition?: string | number;
                                        mediaPctWatched?: string | number;
                                        rankingSessionId?: string;
                                        storyRankingToken?: string;
                                    };
                                    startPosition: number;
                                };
                            },
                            never,
                        >;
                        key: "key";
                        source: { first: ScreenItemNodes; next: ScreenItemNodes };
                    },
                >,
            >,
            ScreenStepServices<
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | NavigationWire
                | MobileNavigation
                | MobileUserFlows
                | AndroidThrottlingDetector
                | AndroidClientAddress,
                ScreenFeedItems<
                    {
                        at: "entries";
                        item: ScreenItemDefinition<
                            "ReelsViewerReel",
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: (...)
                                    | (...); pk?: (...) | (...) };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: (...)
                                    | (...); pk?: (...) | (...) };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            ReelsViewerReelState,
                            never,
                            never,
                            {
                                like: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (
                                    ...args: [],
                                ) => Effect<
                                    (...)
                                    | (...),
                                    (...) | (...) | (...) | (...) | (...) | (...) | (...),

                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...),
                                >;
                                openComments: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => ScreenEdgeBound<
                                    ScreenEdgeShape<
                                        ScreenDefinition<
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                        >,
                                        readonly [(...)],
                                        "button",
                                        AndroidScreens,
                                    >,
                                    (...args: readonly [(...)]) => Effect<(...), (...), (...)>,
                                >;
                                unlike: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (
                                    ...args: [],
                                ) => Effect<
                                    ActionValue<(...)>,
                                    (...) | (...) | (...) | (...) | (...),
                                    (...) | (...) | (...) | (...) | (...) | (...),
                                >;
                            },
                            {
                                facts: {
                                    chaining: {
                                        chainingPosition?: string
                                        | number;
                                        chainingSeedMediaId?: string;
                                        chainingSessionId?: string;
                                        clientPosition?: string | number;
                                        mediaPctWatched?: string | number;
                                        rankingSessionId?: string;
                                        storyRankingToken?: string;
                                    };
                                    startPosition: number;
                                };
                            },
                            never,
                        >;
                        key: "key";
                        source: { first: ScreenItemNodes; next: ScreenItemNodes };
                    },
                >,
            >,
        >;
        checkpointExtra: (
            handle: ScreenHandle,
        ) => Effect<Json | undefined, SchemaError>;
        data: ScreenCodec<
            {
                entries: readonly {
                    key: string;
                    media: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    position: number;
                }[];
                next?: { maxId: string };
                opensOnOneReel?: boolean;
            },
        >;
        enter: (
            args: ScreenEnter<
                | {
                    chaining?: {
                        chainingSessionId?: string;
                        mediaPctWatched?: string
                        | number;
                        rankingSessionId?: string;
                    };
                    index: number;
                    reels: readonly {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    }[];
                }
                | {
                    chainingPosition?: string
                    | number;
                    chainingSeedMediaId?: string;
                    chainingSessionId?: string;
                    clientPosition?: string | number;
                    friendsLane?: false;
                    media?: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    mediaPctWatched?: string
                    | number;
                    rankingSessionId?: string;
                    storyRankingToken?: string;
                },
            >,
        ) => Effect<
            {
                entries: readonly {
                    key: string;
                    media: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    position: number;
                }[];
                next?: { maxId: string };
                opensOnOneReel?: boolean;
            },
            IgApiError
            | RequestError
            | ParseError
            | TransportError
            | ScreenDataError,

                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | NavigationWire
                | MobileNavigation
                | MobileUserFlows
                | AndroidThrottlingDetector
                | AndroidClientAddress,
        >;
        findItem: (
            host: ScreenHandle,
            item: ScreenItemLocation,
        ) => Effect<
            ScreenHandle
            | undefined,
            ScreenLookupFailure<
                | IgApiError
                | RequestError
                | ParseError
                | TransportError
                | ScreenDataError,
                ScreenFeedItems<
                    {
                        at: "entries";
                        item: ScreenItemDefinition<
                            "ReelsViewerReel",
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: (...)
                                    | (...); pk?: (...) | (...) };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: (...)
                                    | (...); pk?: (...) | (...) };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            ReelsViewerReelState,
                            never,
                            never,
                            {
                                like: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (
                                    ...args: [],
                                ) => Effect<
                                    (...)
                                    | (...),
                                    (...) | (...) | (...) | (...) | (...) | (...) | (...),

                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...),
                                >;
                                openComments: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => ScreenEdgeBound<
                                    ScreenEdgeShape<
                                        ScreenDefinition<
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                        >,
                                        readonly [(...)],
                                        "button",
                                        AndroidScreens,
                                    >,
                                    (...args: readonly [(...)]) => Effect<(...), (...), (...)>,
                                >;
                                unlike: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (
                                    ...args: [],
                                ) => Effect<
                                    ActionValue<(...)>,
                                    (...) | (...) | (...) | (...) | (...),
                                    (...) | (...) | (...) | (...) | (...) | (...),
                                >;
                            },
                            {
                                facts: {
                                    chaining: {
                                        chainingPosition?: string
                                        | number;
                                        chainingSeedMediaId?: string;
                                        chainingSessionId?: string;
                                        clientPosition?: string | number;
                                        mediaPctWatched?: string | number;
                                        rankingSessionId?: string;
                                        storyRankingToken?: string;
                                    };
                                    startPosition: number;
                                };
                            },
                            never,
                        >;
                        key: "key";
                        source: { first: ScreenItemNodes; next: ScreenItemNodes };
                    },
                >,
            >,
            ScreenStepServices<
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | NavigationWire
                | MobileNavigation
                | MobileUserFlows
                | AndroidThrottlingDetector
                | AndroidClientAddress,
                ScreenFeedItems<
                    {
                        at: "entries";
                        item: ScreenItemDefinition<
                            "ReelsViewerReel",
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: (...)
                                    | (...); pk?: (...) | (...) };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: (...)
                                    | (...); pk?: (...) | (...) };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            ReelsViewerReelState,
                            never,
                            never,
                            {
                                like: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (
                                    ...args: [],
                                ) => Effect<
                                    (...)
                                    | (...),
                                    (...) | (...) | (...) | (...) | (...) | (...) | (...),

                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...),
                                >;
                                openComments: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => ScreenEdgeBound<
                                    ScreenEdgeShape<
                                        ScreenDefinition<
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                        >,
                                        readonly [(...)],
                                        "button",
                                        AndroidScreens,
                                    >,
                                    (...args: readonly [(...)]) => Effect<(...), (...), (...)>,
                                >;
                                unlike: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (
                                    ...args: [],
                                ) => Effect<
                                    ActionValue<(...)>,
                                    (...) | (...) | (...) | (...) | (...),
                                    (...) | (...) | (...) | (...) | (...) | (...),
                                >;
                            },
                            {
                                facts: {
                                    chaining: {
                                        chainingPosition?: string
                                        | number;
                                        chainingSeedMediaId?: string;
                                        chainingSessionId?: string;
                                        clientPosition?: string | number;
                                        mediaPctWatched?: string | number;
                                        rankingSessionId?: string;
                                        storyRankingToken?: string;
                                    };
                                    startPosition: number;
                                };
                            },
                            never,
                        >;
                        key: "key";
                        source: { first: ScreenItemNodes; next: ScreenItemNodes };
                    },
                >,
            >,
        >;
        id: "ReelsViewer";
        input: ScreenCodec<
            | {
                chaining?: {
                    chainingSessionId?: string;
                    mediaPctWatched?: string
                    | number;
                    rankingSessionId?: string;
                };
                index: number;
                reels: readonly {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                }[];
            }
            | {
                chainingPosition?: string
                | number;
                chainingSeedMediaId?: string;
                chainingSessionId?: string;
                clientPosition?: string | number;
                friendsLane?: false;
                media?: {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                };
                mediaPctWatched?: string
                | number;
                rankingSessionId?: string;
                storyRankingToken?: string;
            },
            ScreenEncodedInput,
        >;
        is: (
            value: unknown,
        ) => value is AssembledHandle<
            "ReelsViewer",
            "tab",
            {
                entries: readonly {
                    key: string;
                    media: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    position: number;
                }[];
                next?: { maxId: string };
                opensOnOneReel?: boolean;
            },
            { openCamera: ReelsViewerCameraEdge } & Omit<
                ScreenFeedMembers<
                    {
                        initial?: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: (...)
                            | (...); pk?: (...) | (...) };
                            video_duration?: number;
                        };
                        maxId?: string;
                    },
                    {
                        at: "entries";
                        item: ScreenItemDefinition<
                            "ReelsViewerReel",
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: ...; pk?: ... };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: ...; pk?: ... };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            ReelsViewerReelState,
                            never,
                            never,
                            {
                                like: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (...args: []) => Effect<(...), (...), (...)>;
                                openComments: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => ScreenEdgeBound<
                                    ScreenEdgeShape<(...), (...), (...), (...)>,
                                    (...args: ...) => ...,
                                >;
                                unlike: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (...args: []) => Effect<(...), (...), (...)>;
                            },
                            {
                                facts: {
                                    chaining: {
                                        chainingPosition?: (...)
                                        | (...)
                                        | (...);
                                        chainingSeedMediaId?: (...) | (...);
                                        chainingSessionId?: (...) | (...);
                                        clientPosition?: (...) | (...) | (...);
                                        mediaPctWatched?: (...) | (...) | (...);
                                        rankingSessionId?: (...) | (...);
                                        storyRankingToken?: (...) | (...);
                                    };
                                    startPosition: number;
                                };
                            },
                            never,
                        >;
                        key: "key";
                        source: { first: ScreenItemNodes; next: ScreenItemNodes };
                    },
                    | IgApiError
                    | RequestError
                    | ParseError
                    | TransportError
                    | ScreenDataError,
                    PlainJsonApiHttp
                    | MobileDevice
                    | NavigationWire
                    | AndroidClientAddress,
                >,
                "stream",
            > & ScreenSwipeMembers<
                {
                    initial?: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    maxId?: string;
                },
                {
                    at: "entries";
                    item: ScreenItemDefinition<
                        "ReelsViewerReel",
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: (...)
                                | (...); pk?: (...) | (...) };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: (...)
                                | (...); pk?: (...) | (...) };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        ReelsViewerReelState,
                        never,
                        never,
                        {
                            like: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                (...)
                                | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                            openComments: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<
                                    ScreenDefinition<
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                    >,
                                    readonly [(...)],
                                    "button",
                                    AndroidScreens,
                                >,
                                (...args: readonly [(...)]) => Effect<(...), (...), (...)>,
                            >;
                            unlike: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                ActionValue<(...)>,
                                (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                        },
                        {
                            facts: {
                                chaining: {
                                    chainingPosition?: string
                                    | number;
                                    chainingSeedMediaId?: string;
                                    chainingSessionId?: string;
                                    clientPosition?: string | number;
                                    mediaPctWatched?: string | number;
                                    rankingSessionId?: string;
                                    storyRankingToken?: string;
                                };
                                startPosition: number;
                            };
                        },
                        never,
                    >;
                    key: "key";
                    source: { first: ScreenItemNodes; next: ScreenItemNodes };
                },
                ScreenFeedSwipeFailure<
                    | IgApiError
                    | RequestError
                    | ParseError
                    | TransportError
                    | ScreenDataError,
                    {
                        at: "entries";
                        item: ScreenItemDefinition<
                            "ReelsViewerReel",
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: ...; pk?: ... };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: ...; pk?: ... };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            ReelsViewerReelState,
                            never,
                            never,
                            {
                                like: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (...args: []) => Effect<(...), (...), (...)>;
                                openComments: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => ScreenEdgeBound<
                                    ScreenEdgeShape<(...), (...), (...), (...)>,
                                    (...args: ...) => ...,
                                >;
                                unlike: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (...args: []) => Effect<(...), (...), (...)>;
                            },
                            {
                                facts: {
                                    chaining: {
                                        chainingPosition?: (...)
                                        | (...)
                                        | (...);
                                        chainingSeedMediaId?: (...) | (...);
                                        chainingSessionId?: (...) | (...);
                                        clientPosition?: (...) | (...) | (...);
                                        mediaPctWatched?: (...) | (...) | (...);
                                        rankingSessionId?: (...) | (...);
                                        storyRankingToken?: (...) | (...);
                                    };
                                    startPosition: number;
                                };
                            },
                            never,
                        >;
                        key: "key";
                        source: { first: ScreenItemNodes; next: ScreenItemNodes };
                    },
                >,
                ScreenFeedPageServices<
                    | PlainJsonApiHttp
                    | MobileDevice
                    | NavigationWire
                    | AndroidClientAddress,
                    {
                        at: "entries";
                        item: ScreenItemDefinition<
                            "ReelsViewerReel",
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: ...; pk?: ... };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: ...; pk?: ... };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            ReelsViewerReelState,
                            never,
                            never,
                            {
                                like: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (...args: []) => Effect<(...), (...), (...)>;
                                openComments: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => ScreenEdgeBound<
                                    ScreenEdgeShape<(...), (...), (...), (...)>,
                                    (...args: ...) => ...,
                                >;
                                unlike: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (...args: []) => Effect<(...), (...), (...)>;
                            },
                            {
                                facts: {
                                    chaining: {
                                        chainingPosition?: (...)
                                        | (...)
                                        | (...);
                                        chainingSeedMediaId?: (...) | (...);
                                        chainingSessionId?: (...) | (...);
                                        clientPosition?: (...) | (...) | (...);
                                        mediaPctWatched?: (...) | (...) | (...);
                                        rankingSessionId?: (...) | (...);
                                        storyRankingToken?: (...) | (...);
                                    };
                                    startPosition: number;
                                };
                            },
                            never,
                        >;
                        key: "key";
                        source: { first: ScreenItemNodes; next: ScreenItemNodes };
                    },
                >,
            >,
            ScreenFeedItems<
                {
                    at: "entries";
                    item: ScreenItemDefinition<
                        "ReelsViewerReel",
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        ReelsViewerReelState,
                        never,
                        never,
                        {
                            like: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                (...) & (...)
                                | (...) & (...),

                                    | IgApiError
                                    | RequestError
                                    | ParseError
                                    | TransportError
                                    | SchemaError
                                    | GraphqlRootFieldMissingError
                                    | ScreenEnterConcurrentError,
                                | PlainJsonApiHttp
                                | Signature
                                | MobileSession
                                | MobileDevice
                                | GraphqlJsonHttp
                                | MobileApplication
                                | NavigationWire
                                | MobileNavigation
                                | ScreenStack,
                            >;
                            openComments: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<
                                    ScreenDefinition<
                                        "MediaComments",
                                        "screen",
                                        (...)
                                        | (...),
                                        (...) | (...),
                                        (...) | (...) | (...) | (...),
                                        (...) | (...) | (...) | (...) | (...),

                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...)
                                            | (...),
                                        { comment: ... },
                                        Record<(...), (...)>,
                                        never,
                                        "mediaId",
                                    >,
                                    readonly [{ commentSessionId?: ... }],
                                    "button",
                                    AndroidScreens,
                                >,
                                (
                                    ...args: readonly [{ commentSessionId?: ... }],
                                ) => Effect<
                                    AssembledHandle<
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                    >,
                                    (...) | (...) | (...) | (...) | (...) | (...) | (...),

                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...),
                                >,
                            >;
                            unlike: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                ActionValue<string>,

                                    | IgApiError
                                    | RequestError
                                    | ParseError
                                    | TransportError
                                    | ScreenEnterConcurrentError,
                                | MobileDevice
                                | GraphqlJsonHttp
                                | MobileApplication
                                | NavigationWire
                                | MobileNavigation
                                | ScreenStack,
                            >;
                        },
                        {
                            facts: {
                                chaining: {
                                    chainingPosition?: string
                                    | number;
                                    chainingSeedMediaId?: string;
                                    chainingSessionId?: string;
                                    clientPosition?: string | number;
                                    mediaPctWatched?: string | number;
                                    rankingSessionId?: string;
                                    storyRankingToken?: string;
                                };
                                startPosition: number;
                            };
                        },
                        never,
                    >;
                    key: "key";
                    source: { first: ScreenItemNodes; next: ScreenItemNodes };
                },
            >,
            ScreenHandle
            | undefined,
            "optional",
            false,
            never,
            unknown,
        >;
        items:
            | ScreenFeedItems<
                {
                    at: "entries";
                    item: ScreenItemDefinition<
                        "ReelsViewerReel",
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        ReelsViewerReelState,
                        never,
                        never,
                        {
                            like: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                | { data: ... } & { raw: ... }
                                | MediaLikeRestResponse & { raw: ... },

                                    | IgApiError
                                    | RequestError
                                    | ParseError
                                    | TransportError
                                    | SchemaError
                                    | GraphqlRootFieldMissingError
                                    | ScreenEnterConcurrentError,
                                | PlainJsonApiHttp
                                | Signature
                                | MobileSession
                                | MobileDevice
                                | GraphqlJsonHttp
                                | MobileApplication
                                | NavigationWire
                                | MobileNavigation
                                | ScreenStack,
                            >;
                            openComments: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<
                                    ScreenDefinition<
                                        "MediaComments",
                                        "screen",
                                        | {
                                            carousel?: ...;
                                            chainingSeedMediaId?: ...;
                                            commentSessionId?: ...;
                                            feedPosition?: ...;
                                            mediaId: ...;
                                            rankingSessionId?: ...;
                                            surface: ...;
                                        }
                                        | {
                                            chainingPosition?: ...;
                                            chainingSeedMediaId?: ...;
                                            chainingSessionId?: ...;
                                            clientPosition?: ...;
                                            commentSessionId?: ...;
                                            mediaId: ...;
                                            rankingSessionId?: ...;
                                            storyRankingToken?: ...;
                                            surface: ...;
                                        },
                                        | {
                                            commentSessionId: ...;
                                            createdMediaNoteIds: ...;
                                            mediaId: ...;
                                            slide?: ...;
                                            surface: ...;
                                        }
                                        | {
                                            commentSessionId: ...;
                                            createdMediaNoteIds: ...;
                                            mediaId: ...;
                                            surface: ...;
                                        },
                                        (...) & (...)
                                        | never
                                        | never
                                        | (...) & (...),

                                            | IgApiError
                                            | RequestError
                                            | ParseError
                                            | TransportError
                                            | ScreenDataError,
                                        | PlainJsonApiHttp
                                        | MobileSession
                                        | MobileDevice
                                        | GraphqlJsonHttp
                                        | MobileApplication
                                        | MobileNavigation
                                        | JsonResponseHttp
                                        | MobileUserFlows
                                        | MediaCommentsReads
                                        | AndroidQuickPromotionStash,
                                        { comment: (self: ..., state: ...) => ... },
                                        Record<never, never>,
                                        never,
                                        "mediaId",
                                    >,
                                    readonly [{ commentSessionId?: (...) | (...) }],
                                    "button",
                                    AndroidScreens,
                                >,
                                (
                                    ...args: readonly [{ commentSessionId?: (...) | (...) }],
                                ) => Effect<
                                    AssembledHandle<
                                        "MediaComments",
                                        "screen",
                                        (...)
                                        | (...),
                                        { comment: ... },
                                        Record<(...), (...)>,
                                        ScreenHandle,
                                        "required",
                                        true,
                                        "mediaId",
                                        AndroidScreens,
                                    >,

                                        | IgApiError
                                        | RequestError
                                        | ParseError
                                        | TransportError
                                        | ScreenDataError
                                        | ScreenEnterConcurrentError
                                        | ScreenEdgeInputError,
                                    | PlainJsonApiHttp
                                    | MobileSession
                                    | MobileDevice
                                    | GraphqlJsonHttp
                                    | MobileApplication
                                    | MobileNavigation
                                    | JsonResponseHttp
                                    | MobileUserFlows
                                    | ScreenStack
                                    | MediaCommentsReads
                                    | AndroidQuickPromotionStash
                                    | ScreenCatalog,
                                >,
                            >;
                            unlike: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                ActionValue<string>,

                                    | IgApiError
                                    | RequestError
                                    | ParseError
                                    | TransportError
                                    | ScreenEnterConcurrentError,
                                | MobileDevice
                                | GraphqlJsonHttp
                                | MobileApplication
                                | NavigationWire
                                | MobileNavigation
                                | ScreenStack,
                            >;
                        },
                        {
                            facts: {
                                chaining: {
                                    chainingPosition?: string
                                    | number;
                                    chainingSeedMediaId?: string;
                                    chainingSessionId?: string;
                                    clientPosition?: string | number;
                                    mediaPctWatched?: string | number;
                                    rankingSessionId?: string;
                                    storyRankingToken?: string;
                                };
                                startPosition: number;
                            };
                        },
                        never,
                    >;
                    key: "key";
                    source: { first: ScreenItemNodes; next: ScreenItemNodes };
                },
            >
            | undefined;
        itemVisits: boolean;
        kind: "tab";
        leave: | (
            (
                left: ScreenLeave<
                    | {
                        chaining?: {
                            chainingSessionId?: string;
                            mediaPctWatched?: string
                            | number;
                            rankingSessionId?: string;
                        };
                        index: number;
                        reels: readonly {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        }[];
                    }
                    | {
                        chainingPosition?: string
                        | number;
                        chainingSeedMediaId?: string;
                        chainingSessionId?: string;
                        clientPosition?: string | number;
                        friendsLane?: false;
                        media?: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        mediaPctWatched?: string
                        | number;
                        rankingSessionId?: string;
                        storyRankingToken?: string;
                    },
                    {
                        entries: readonly {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            position: number;
                        }[];
                        next?: { maxId: string };
                        opensOnOneReel?: boolean;
                    },
                    ScreenFeedState<
                        {
                            initial?: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            maxId?: string;
                        },
                        ReelsViewerFacts,
                    >,
                >,
            ) => Effect<
                void,
                never,
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | NavigationWire
                | MobileNavigation
                | MobileUserFlows
                | AndroidThrottlingDetector
                | AndroidClientAddress,
            >
        )
        | undefined;
        ownsCheckpoint: OwnsCheckpoint<"ReelsViewer">;
        positionOf: (handle: ScreenHandle) => Json | undefined;
        readReleased?: ScreenReleasedReader;
        readReleasedInput?: ScreenReleasedInputReader;
        releasedItemLists: Readonly<Record<string, string>>;
        restoreCheckpointExtra: (
            handle: ScreenHandle,
            extra: Json,
        ) => Effect<
            void,
            ScreenDataError
            | CheckpointDecodeError,

                | ScreenStack
                | ScreenStepServices<
                    | PlainJsonApiHttp
                    | Signature
                    | MobileSession
                    | MobileDevice
                    | GraphqlJsonHttp
                    | MobileApplication
                    | NavigationWire
                    | MobileNavigation
                    | MobileUserFlows
                    | AndroidThrottlingDetector
                    | AndroidClientAddress,
                    ScreenFeedItems<
                        {
                            at: "entries";
                            item: ScreenItemDefinition<
                                "ReelsViewerReel",
                                {
                                    key: string;
                                    media: {
                                        code: string;
                                        id: string;
                                        media_type: number;
                                        organic_tracking_token?: string;
                                        pk: string;
                                        taken_at?: number;
                                        user?: { id?: ...; pk?: ... };
                                        video_duration?: number;
                                    };
                                    position: number;
                                },
                                {
                                    key: string;
                                    media: {
                                        code: string;
                                        id: string;
                                        media_type: number;
                                        organic_tracking_token?: string;
                                        pk: string;
                                        taken_at?: number;
                                        user?: { id?: ...; pk?: ... };
                                        video_duration?: number;
                                    };
                                    position: number;
                                },
                                ReelsViewerReelState,
                                never,
                                never,
                                {
                                    like: (
                                        self: ScreenHandle,
                                        state: ReelsViewerReelState,
                                    ) => (...args: []) => Effect<(...), (...), (...)>;
                                    openComments: (
                                        self: ScreenHandle,
                                        state: ReelsViewerReelState,
                                    ) => ScreenEdgeBound<
                                        ScreenEdgeShape<(...), (...), (...), (...)>,
                                        (...args: ...) => ...,
                                    >;
                                    unlike: (
                                        self: ScreenHandle,
                                        state: ReelsViewerReelState,
                                    ) => (...args: []) => Effect<(...), (...), (...)>;
                                },
                                {
                                    facts: {
                                        chaining: {
                                            chainingPosition?: (...)
                                            | (...)
                                            | (...);
                                            chainingSeedMediaId?: (...) | (...);
                                            chainingSessionId?: (...) | (...);
                                            clientPosition?: (...) | (...) | (...);
                                            mediaPctWatched?: (...) | (...) | (...);
                                            rankingSessionId?: (...) | (...);
                                            storyRankingToken?: (...) | (...);
                                        };
                                        startPosition: number;
                                    };
                                },
                                never,
                            >;
                            key: "key";
                            source: { first: ScreenItemNodes; next: ScreenItemNodes };
                        },
                    >,
                >,
        >;
        restorePosition: (
            handle: ScreenHandle,
            position: Json,
        ) => Effect<
            void,
            ScreenLookupFailure<
                | IgApiError
                | RequestError
                | ParseError
                | TransportError
                | ScreenDataError,
                ScreenFeedItems<
                    {
                        at: "entries";
                        item: ScreenItemDefinition<
                            "ReelsViewerReel",
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: (...)
                                    | (...); pk?: (...) | (...) };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: (...)
                                    | (...); pk?: (...) | (...) };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            ReelsViewerReelState,
                            never,
                            never,
                            {
                                like: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (
                                    ...args: [],
                                ) => Effect<
                                    (...)
                                    | (...),
                                    (...) | (...) | (...) | (...) | (...) | (...) | (...),

                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...),
                                >;
                                openComments: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => ScreenEdgeBound<
                                    ScreenEdgeShape<
                                        ScreenDefinition<
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                        >,
                                        readonly [(...)],
                                        "button",
                                        AndroidScreens,
                                    >,
                                    (...args: readonly [(...)]) => Effect<(...), (...), (...)>,
                                >;
                                unlike: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (
                                    ...args: [],
                                ) => Effect<
                                    ActionValue<(...)>,
                                    (...) | (...) | (...) | (...) | (...),
                                    (...) | (...) | (...) | (...) | (...) | (...),
                                >;
                            },
                            {
                                facts: {
                                    chaining: {
                                        chainingPosition?: string
                                        | number;
                                        chainingSeedMediaId?: string;
                                        chainingSessionId?: string;
                                        clientPosition?: string | number;
                                        mediaPctWatched?: string | number;
                                        rankingSessionId?: string;
                                        storyRankingToken?: string;
                                    };
                                    startPosition: number;
                                };
                            },
                            never,
                        >;
                        key: "key";
                        source: { first: ScreenItemNodes; next: ScreenItemNodes };
                    },
                >,
            >,
            ScreenStepServices<
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | NavigationWire
                | MobileNavigation
                | MobileUserFlows
                | AndroidThrottlingDetector
                | AndroidClientAddress,
                ScreenFeedItems<
                    {
                        at: "entries";
                        item: ScreenItemDefinition<
                            "ReelsViewerReel",
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: (...)
                                    | (...); pk?: (...) | (...) };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: (...)
                                    | (...); pk?: (...) | (...) };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            ReelsViewerReelState,
                            never,
                            never,
                            {
                                like: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (
                                    ...args: [],
                                ) => Effect<
                                    (...)
                                    | (...),
                                    (...) | (...) | (...) | (...) | (...) | (...) | (...),

                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...),
                                >;
                                openComments: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => ScreenEdgeBound<
                                    ScreenEdgeShape<
                                        ScreenDefinition<
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                            (...),
                                        >,
                                        readonly [(...)],
                                        "button",
                                        AndroidScreens,
                                    >,
                                    (...args: readonly [(...)]) => Effect<(...), (...), (...)>,
                                >;
                                unlike: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (
                                    ...args: [],
                                ) => Effect<
                                    ActionValue<(...)>,
                                    (...) | (...) | (...) | (...) | (...),
                                    (...) | (...) | (...) | (...) | (...) | (...),
                                >;
                            },
                            {
                                facts: {
                                    chaining: {
                                        chainingPosition?: string
                                        | number;
                                        chainingSeedMediaId?: string;
                                        chainingSessionId?: string;
                                        clientPosition?: string | number;
                                        mediaPctWatched?: string | number;
                                        rankingSessionId?: string;
                                        storyRankingToken?: string;
                                    };
                                    startPosition: number;
                                };
                            },
                            never,
                        >;
                        key: "key";
                        source: { first: ScreenItemNodes; next: ScreenItemNodes };
                    },
                >,
            >,
        >;
        resume: | (
            (
                resumed: ScreenResume<
                    | {
                        chaining?: {
                            chainingSessionId?: string;
                            mediaPctWatched?: string
                            | number;
                            rankingSessionId?: string;
                        };
                        index: number;
                        reels: readonly {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        }[];
                    }
                    | {
                        chainingPosition?: string
                        | number;
                        chainingSeedMediaId?: string;
                        chainingSessionId?: string;
                        clientPosition?: string | number;
                        friendsLane?: false;
                        media?: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        mediaPctWatched?: string
                        | number;
                        rankingSessionId?: string;
                        storyRankingToken?: string;
                    },
                    {
                        entries: readonly {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            position: number;
                        }[];
                        next?: { maxId: string };
                        opensOnOneReel?: boolean;
                    },
                    ScreenFeedState<
                        {
                            initial?: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            maxId?: string;
                        },
                        ReelsViewerFacts,
                    >,
                >,
            ) => Effect<
                void,
                never,
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | NavigationWire
                | MobileNavigation
                | MobileUserFlows
                | AndroidThrottlingDetector
                | AndroidClientAddress,
            >
        )
        | undefined;
        state: (
            opened: ScreenStateArgs<
                | {
                    chaining?: {
                        chainingSessionId?: string;
                        mediaPctWatched?: string
                        | number;
                        rankingSessionId?: string;
                    };
                    index: number;
                    reels: readonly {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    }[];
                }
                | {
                    chainingPosition?: string
                    | number;
                    chainingSeedMediaId?: string;
                    chainingSessionId?: string;
                    clientPosition?: string | number;
                    friendsLane?: false;
                    media?: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    mediaPctWatched?: string
                    | number;
                    rankingSessionId?: string;
                    storyRankingToken?: string;
                },
                {
                    entries: readonly {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        position: number;
                    }[];
                    next?: { maxId: string };
                    opensOnOneReel?: boolean;
                },
                undefined,
            >,
        ) => ScreenFeedState;
        pipe<A>(this: A): A;
        pipe<A, B = never>(this: A, ab: (_: A) => B): B;
        pipe<A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C;
        pipe<A, B = never, C = never, D = never>(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
        ): D;
        pipe<A, B = never, C = never, D = never, E = never>(
            this: A,
            ab: (_: A) => B,
            bc: (_: B) => C,
            cd: (_: C) => D,
            de: (_: D) => E,
        ): E;
        pipe<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;
        pipe<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;
        pipe<
            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;
        pipe<
            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;
        pipe<
            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;
        pipe<
            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;
        pipe<
            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;
        pipe<
            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;
        pipe<
            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;
        pipe<
            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;
        pipe<
            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;
        pipe<
            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;
        pipe<
            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;
        pipe<
            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;
        pipe<
            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;
        pipe<
            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;
        pipe<
            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;
    }

    Hierarchy

    • ReturnType<typeof reelsViewerFeed>
      • ReelsViewerScreenDefinition
    Index

    Methods

    • Type Parameters

      • A

      Parameters

      • this: A

      Returns A

    • Type Parameters

      • A
      • B = never

      Parameters

      • this: A
      • ab: (_: A) => B

      Returns B

    • Type Parameters

      • A
      • B = never
      • C = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C

      Returns C

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D

      Returns D

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E

      Returns E

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F

      Returns F

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G

      Returns G

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H

      Returns H

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never

      Parameters

      • 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

      Returns I

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never

      Parameters

      • 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

      Returns J

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never
      • K = never

      Parameters

      • 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

      Returns K

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never
      • K = never
      • L = never

      Parameters

      • 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

      Returns L

    • Type Parameters

      • 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

      Parameters

      • 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

      Returns M

    • Type Parameters

      • 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

      Parameters

      • 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

      Returns N

    • Type Parameters

      • 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

      Parameters

      • 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

      Returns O

    • Type Parameters

      • 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

      Parameters

      • 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

      Returns P

    • Type Parameters

      • 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

      Parameters

      • 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

      Returns Q

    • Type Parameters

      • 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

      Parameters

      • 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

      Returns R

    • Type Parameters

      • 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

      Parameters

      • 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

      Returns S

    • Type Parameters

      • 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

      Parameters

      • 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

      Returns T

    • Type Parameters

      • 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

      Parameters

      • 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

      Returns U

    • Type Parameters

      • 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

      Parameters

      • 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

      Returns U

    Properties

    "~opens"?: (target: never) => void

    Type Declaration

      • (target: never): void
      • Type only, never a value: the screens this definition opens through action edges — edges its handle does not show (actionEdge) — so ScreenOpenTargetsOf follows them and a screen reached only that way is still visible to the registry-derived reachability. The parameter is bivariant (a method's is), so a definition that names its targets is still accepted wherever a definition's parts are read; never for a definition whose transitions all live on its handle.

        Parameters

        • target: never

        Returns void

    "~top"?: ScreenTopLevelMarker<never>

    The data fields the handle also shows on its top level: the screen's one main identifier (identity), or none. A type only, never set.

    actions: { openCamera: ReelsViewerCameraEdge } & Omit<
        ScreenFeedMembers<
            {
                initial?: {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                };
                maxId?: string;
            },
            {
                at: "entries";
                item: ScreenItemDefinition<
                    "ReelsViewerReel",
                    {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        position: number;
                    },
                    {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        position: number;
                    },
                    ReelsViewerReelState,
                    never,
                    never,
                    {
                        like: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            (...) & (...)
                            | (...) & (...),

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | SchemaError
                                | GraphqlRootFieldMissingError
                                | ScreenEnterConcurrentError,
                            | PlainJsonApiHttp
                            | Signature
                            | MobileSession
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | NavigationWire
                            | MobileNavigation
                            | ScreenStack,
                        >;
                        openComments: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => ScreenEdgeBound<
                            ScreenEdgeShape<
                                ScreenDefinition<
                                    "MediaComments",
                                    "screen",
                                    (...)
                                    | (...),
                                    (...) | (...),
                                    (...) | (...) | (...) | (...),
                                    (...) | (...) | (...) | (...) | (...),

                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...),
                                    { comment: ... },
                                    Record<(...), (...)>,
                                    never,
                                    "mediaId",
                                >,
                                readonly [{ commentSessionId?: ... }],
                                "button",
                                AndroidScreens,
                            >,
                            (
                                ...args: readonly [{ commentSessionId?: ... }],
                            ) => Effect<
                                AssembledHandle<
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                >,
                                (...) | (...) | (...) | (...) | (...) | (...) | (...),

                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...),
                            >,
                        >;
                        unlike: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            ActionValue<string>,

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | ScreenEnterConcurrentError,
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | NavigationWire
                            | MobileNavigation
                            | ScreenStack,
                        >;
                    },
                    {
                        facts: {
                            chaining: {
                                chainingPosition?: string
                                | number;
                                chainingSeedMediaId?: string;
                                chainingSessionId?: string;
                                clientPosition?: string | number;
                                mediaPctWatched?: string | number;
                                rankingSessionId?: string;
                                storyRankingToken?: string;
                            };
                            startPosition: number;
                        };
                    },
                    never,
                >;
                key: "key";
                source: { first: ScreenItemNodes; next: ScreenItemNodes };
            },
            IgApiError
            | RequestError
            | ParseError
            | TransportError
            | ScreenDataError,
            PlainJsonApiHttp | MobileDevice | NavigationWire | AndroidClientAddress,
        >,
        "stream",
    > & ScreenSwipeMembers<
        {
            initial?: {
                code: string;
                id: string;
                media_type: number;
                organic_tracking_token?: string;
                pk: string;
                taken_at?: number;
                user?: { id?: string; pk?: string };
                video_duration?: number;
            };
            maxId?: string;
        },
        {
            at: "entries";
            item: ScreenItemDefinition<
                "ReelsViewerReel",
                {
                    key: string;
                    media: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    position: number;
                },
                {
                    key: string;
                    media: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    position: number;
                },
                ReelsViewerReelState,
                never,
                never,
                {
                    like: (
                        self: ScreenHandle,
                        state: ReelsViewerReelState,
                    ) => (
                        ...args: [],
                    ) => Effect<
                        { data: ... } & { raw: ... }
                        | MediaLikeRestResponse & { raw: ... },

                            | IgApiError
                            | RequestError
                            | ParseError
                            | TransportError
                            | SchemaError
                            | GraphqlRootFieldMissingError
                            | ScreenEnterConcurrentError,
                        | PlainJsonApiHttp
                        | Signature
                        | MobileSession
                        | MobileDevice
                        | GraphqlJsonHttp
                        | MobileApplication
                        | NavigationWire
                        | MobileNavigation
                        | ScreenStack,
                    >;
                    openComments: (
                        self: ScreenHandle,
                        state: ReelsViewerReelState,
                    ) => ScreenEdgeBound<
                        ScreenEdgeShape<
                            ScreenDefinition<
                                "MediaComments",
                                "screen",
                                | {
                                    carousel?: ...;
                                    chainingSeedMediaId?: ...;
                                    commentSessionId?: ...;
                                    feedPosition?: ...;
                                    mediaId: ...;
                                    rankingSessionId?: ...;
                                    surface: ...;
                                }
                                | {
                                    chainingPosition?: ...;
                                    chainingSeedMediaId?: ...;
                                    chainingSessionId?: ...;
                                    clientPosition?: ...;
                                    commentSessionId?: ...;
                                    mediaId: ...;
                                    rankingSessionId?: ...;
                                    storyRankingToken?: ...;
                                    surface: ...;
                                },
                                | {
                                    commentSessionId: ...;
                                    createdMediaNoteIds: ...;
                                    mediaId: ...;
                                    slide?: ...;
                                    surface: ...;
                                }
                                | {
                                    commentSessionId: ...;
                                    createdMediaNoteIds: ...;
                                    mediaId: ...;
                                    surface: ...;
                                },
                                (...) & (...)
                                | never
                                | never
                                | (...) & (...),

                                    | IgApiError
                                    | RequestError
                                    | ParseError
                                    | TransportError
                                    | ScreenDataError,
                                | PlainJsonApiHttp
                                | MobileSession
                                | MobileDevice
                                | GraphqlJsonHttp
                                | MobileApplication
                                | MobileNavigation
                                | JsonResponseHttp
                                | MobileUserFlows
                                | MediaCommentsReads
                                | AndroidQuickPromotionStash,
                                { comment: (self: ..., state: ...) => ... },
                                Record<never, never>,
                                never,
                                "mediaId",
                            >,
                            readonly [{ commentSessionId?: (...) | (...) }],
                            "button",
                            AndroidScreens,
                        >,
                        (
                            ...args: readonly [{ commentSessionId?: (...) | (...) }],
                        ) => Effect<
                            AssembledHandle<
                                "MediaComments",
                                "screen",
                                (...)
                                | (...),
                                { comment: ... },
                                Record<(...), (...)>,
                                ScreenHandle,
                                "required",
                                true,
                                "mediaId",
                                AndroidScreens,
                            >,

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | ScreenDataError
                                | ScreenEnterConcurrentError
                                | ScreenEdgeInputError,
                            | PlainJsonApiHttp
                            | MobileSession
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | MobileNavigation
                            | JsonResponseHttp
                            | MobileUserFlows
                            | ScreenStack
                            | MediaCommentsReads
                            | AndroidQuickPromotionStash
                            | ScreenCatalog,
                        >,
                    >;
                    unlike: (
                        self: ScreenHandle,
                        state: ReelsViewerReelState,
                    ) => (
                        ...args: [],
                    ) => Effect<
                        ActionValue<string>,

                            | IgApiError
                            | RequestError
                            | ParseError
                            | TransportError
                            | ScreenEnterConcurrentError,
                        | MobileDevice
                        | GraphqlJsonHttp
                        | MobileApplication
                        | NavigationWire
                        | MobileNavigation
                        | ScreenStack,
                    >;
                },
                {
                    facts: {
                        chaining: {
                            chainingPosition?: string
                            | number;
                            chainingSeedMediaId?: string;
                            chainingSessionId?: string;
                            clientPosition?: string | number;
                            mediaPctWatched?: string | number;
                            rankingSessionId?: string;
                            storyRankingToken?: string;
                        };
                        startPosition: number;
                    };
                },
                never,
            >;
            key: "key";
            source: { first: ScreenItemNodes; next: ScreenItemNodes };
        },
        ScreenFeedSwipeFailure<
            | IgApiError
            | RequestError
            | ParseError
            | TransportError
            | ScreenDataError,
            {
                at: "entries";
                item: ScreenItemDefinition<
                    "ReelsViewerReel",
                    {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        position: number;
                    },
                    {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        position: number;
                    },
                    ReelsViewerReelState,
                    never,
                    never,
                    {
                        like: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            (...) & (...)
                            | (...) & (...),

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | SchemaError
                                | GraphqlRootFieldMissingError
                                | ScreenEnterConcurrentError,
                            | PlainJsonApiHttp
                            | Signature
                            | MobileSession
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | NavigationWire
                            | MobileNavigation
                            | ScreenStack,
                        >;
                        openComments: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => ScreenEdgeBound<
                            ScreenEdgeShape<
                                ScreenDefinition<
                                    "MediaComments",
                                    "screen",
                                    (...)
                                    | (...),
                                    (...) | (...),
                                    (...) | (...) | (...) | (...),
                                    (...) | (...) | (...) | (...) | (...),

                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...),
                                    { comment: ... },
                                    Record<(...), (...)>,
                                    never,
                                    "mediaId",
                                >,
                                readonly [{ commentSessionId?: ... }],
                                "button",
                                AndroidScreens,
                            >,
                            (
                                ...args: readonly [{ commentSessionId?: ... }],
                            ) => Effect<
                                AssembledHandle<
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                >,
                                (...) | (...) | (...) | (...) | (...) | (...) | (...),

                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...),
                            >,
                        >;
                        unlike: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            ActionValue<string>,

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | ScreenEnterConcurrentError,
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | NavigationWire
                            | MobileNavigation
                            | ScreenStack,
                        >;
                    },
                    {
                        facts: {
                            chaining: {
                                chainingPosition?: string
                                | number;
                                chainingSeedMediaId?: string;
                                chainingSessionId?: string;
                                clientPosition?: string | number;
                                mediaPctWatched?: string | number;
                                rankingSessionId?: string;
                                storyRankingToken?: string;
                            };
                            startPosition: number;
                        };
                    },
                    never,
                >;
                key: "key";
                source: { first: ScreenItemNodes; next: ScreenItemNodes };
            },
        >,
        ScreenFeedPageServices<
            PlainJsonApiHttp
            | MobileDevice
            | NavigationWire
            | AndroidClientAddress,
            {
                at: "entries";
                item: ScreenItemDefinition<
                    "ReelsViewerReel",
                    {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        position: number;
                    },
                    {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        position: number;
                    },
                    ReelsViewerReelState,
                    never,
                    never,
                    {
                        like: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            (...) & (...)
                            | (...) & (...),

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | SchemaError
                                | GraphqlRootFieldMissingError
                                | ScreenEnterConcurrentError,
                            | PlainJsonApiHttp
                            | Signature
                            | MobileSession
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | NavigationWire
                            | MobileNavigation
                            | ScreenStack,
                        >;
                        openComments: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => ScreenEdgeBound<
                            ScreenEdgeShape<
                                ScreenDefinition<
                                    "MediaComments",
                                    "screen",
                                    (...)
                                    | (...),
                                    (...) | (...),
                                    (...) | (...) | (...) | (...),
                                    (...) | (...) | (...) | (...) | (...),

                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...),
                                    { comment: ... },
                                    Record<(...), (...)>,
                                    never,
                                    "mediaId",
                                >,
                                readonly [{ commentSessionId?: ... }],
                                "button",
                                AndroidScreens,
                            >,
                            (
                                ...args: readonly [{ commentSessionId?: ... }],
                            ) => Effect<
                                AssembledHandle<
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                >,
                                (...) | (...) | (...) | (...) | (...) | (...) | (...),

                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...),
                            >,
                        >;
                        unlike: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            ActionValue<string>,

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | ScreenEnterConcurrentError,
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | NavigationWire
                            | MobileNavigation
                            | ScreenStack,
                        >;
                    },
                    {
                        facts: {
                            chaining: {
                                chainingPosition?: string
                                | number;
                                chainingSeedMediaId?: string;
                                chainingSessionId?: string;
                                clientPosition?: string | number;
                                mediaPctWatched?: string | number;
                                rankingSessionId?: string;
                                storyRankingToken?: string;
                            };
                            startPosition: number;
                        };
                    },
                    never,
                >;
                key: "key";
                source: { first: ScreenItemNodes; next: ScreenItemNodes };
            },
        >,
    >

    Type Declaration

    • openCamera: ReelsViewerCameraEdge

      The "+" of the viewer's top bar: the creation camera, in the reel mode (the chain ClipsViewerFragment:clips_viewer_clips_tab:1 → QuickCaptureFragment:clips_precapture_camera:2:button). The creation flow replaces the viewer, so the viewer's session ends there and the camera's entry writes the reels it visited (run-plain-story-photo-no-music-20261026-224945).

    afterAssemble:
        | ((handle: ScreenHandle) => Effect<void, never, never>)
        | undefined

    What runs once the screen's handle is assembled, inside the enter's transaction: a swipeable feed gives the first item in front its enter here, because its items were shown without one. Absent for every screen and every plain feed. A failure rolls the enter back.

    beforeLeave?: (
        left: ScreenBeforeLeave<
            | {
                chaining?: {
                    chainingSessionId?: string;
                    mediaPctWatched?: string
                    | number;
                    rankingSessionId?: string;
                };
                index: number;
                reels: readonly {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                }[];
            }
            | {
                chainingPosition?: string
                | number;
                chainingSeedMediaId?: string;
                chainingSessionId?: string;
                clientPosition?: string | number;
                friendsLane?: false;
                media?: {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                };
                mediaPctWatched?: string
                | number;
                rankingSessionId?: string;
                storyRankingToken?: string;
            },
            {
                entries: readonly {
                    key: string;
                    media: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    position: number;
                }[];
                next?: { maxId: string };
                opensOnOneReel?: boolean;
            },
            ScreenFeedState<
                {
                    initial?: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    maxId?: string;
                },
                ReelsViewerFacts,
            >,
        >,
    ) => Effect<
        void,
        never,
        | PlainJsonApiHttp
        | Signature
        | MobileSession
        | MobileDevice
        | GraphqlJsonHttp
        | MobileApplication
        | NavigationWire
        | MobileNavigation
        | MobileUserFlows
        | AndroidThrottlingDetector
        | AndroidClientAddress,
    >

    What the engine runs when a transition is about to cover or close the screen, while its chain and endpoint are still in front: the app's departure work that goes out before the covering screen's burst. A screen and a feed declare it (an item does not). It receives the visit in progress, cannot fail, and runs before the transition and before leave.

    beforeResume?: (
        returning: ScreenBeforeResume<
            | {
                chaining?: {
                    chainingSessionId?: string;
                    mediaPctWatched?: string
                    | number;
                    rankingSessionId?: string;
                };
                index: number;
                reels: readonly {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                }[];
            }
            | {
                chainingPosition?: string
                | number;
                chainingSeedMediaId?: string;
                chainingSessionId?: string;
                clientPosition?: string | number;
                friendsLane?: false;
                media?: {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                };
                mediaPctWatched?: string
                | number;
                rankingSessionId?: string;
                storyRankingToken?: string;
            },
            {
                entries: readonly {
                    key: string;
                    media: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    position: number;
                }[];
                next?: { maxId: string };
                opensOnOneReel?: boolean;
            },
            ScreenFeedState<
                {
                    initial?: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    maxId?: string;
                },
                ReelsViewerFacts,
            >,
        >,
    ) => Effect<
        void,
        never,
        | PlainJsonApiHttp
        | Signature
        | MobileSession
        | MobileDevice
        | GraphqlJsonHttp
        | MobileApplication
        | NavigationWire
        | MobileNavigation
        | MobileUserFlows
        | AndroidThrottlingDetector
        | AndroidClientAddress,
    >

    What the engine runs when a transition is about to bring the screen back on top (a tab tap back to it, the covering screen's back), while the screen in front still has its chain and endpoint: the app's tap-time work, the counterpart of the first show's burst before its own navigation event. Only a screen declares it. It cannot fail, and runs before the transition and before resume.

    catalogEntry: () => ScreenCatalogEntry<
        ScreenStepFailure<
            | IgApiError
            | RequestError
            | ParseError
            | TransportError
            | ScreenDataError,
            ScreenFeedItems<
                {
                    at: "entries";
                    item: ScreenItemDefinition<
                        "ReelsViewerReel",
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: (...)
                                | (...); pk?: (...) | (...) };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: (...)
                                | (...); pk?: (...) | (...) };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        ReelsViewerReelState,
                        never,
                        never,
                        {
                            like: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                (...)
                                | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                            openComments: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<
                                    ScreenDefinition<
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                    >,
                                    readonly [(...)],
                                    "button",
                                    AndroidScreens,
                                >,
                                (...args: readonly [(...)]) => Effect<(...), (...), (...)>,
                            >;
                            unlike: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                ActionValue<(...)>,
                                (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                        },
                        {
                            facts: {
                                chaining: {
                                    chainingPosition?: string
                                    | number;
                                    chainingSeedMediaId?: string;
                                    chainingSessionId?: string;
                                    clientPosition?: string | number;
                                    mediaPctWatched?: string | number;
                                    rankingSessionId?: string;
                                    storyRankingToken?: string;
                                };
                                startPosition: number;
                            };
                        },
                        never,
                    >;
                    key: "key";
                    source: { first: ScreenItemNodes; next: ScreenItemNodes };
                },
            >,
        >,
        ScreenStepServices<
            | PlainJsonApiHttp
            | Signature
            | MobileSession
            | MobileDevice
            | GraphqlJsonHttp
            | MobileApplication
            | NavigationWire
            | MobileNavigation
            | MobileUserFlows
            | AndroidThrottlingDetector
            | AndroidClientAddress,
            ScreenFeedItems<
                {
                    at: "entries";
                    item: ScreenItemDefinition<
                        "ReelsViewerReel",
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: (...)
                                | (...); pk?: (...) | (...) };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: (...)
                                | (...); pk?: (...) | (...) };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        ReelsViewerReelState,
                        never,
                        never,
                        {
                            like: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                (...)
                                | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                            openComments: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<
                                    ScreenDefinition<
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                    >,
                                    readonly [(...)],
                                    "button",
                                    AndroidScreens,
                                >,
                                (...args: readonly [(...)]) => Effect<(...), (...), (...)>,
                            >;
                            unlike: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                ActionValue<(...)>,
                                (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                        },
                        {
                            facts: {
                                chaining: {
                                    chainingPosition?: string
                                    | number;
                                    chainingSeedMediaId?: string;
                                    chainingSessionId?: string;
                                    clientPosition?: string | number;
                                    mediaPctWatched?: string | number;
                                    rankingSessionId?: string;
                                    storyRankingToken?: string;
                                };
                                startPosition: number;
                            };
                        },
                        never,
                    >;
                    key: "key";
                    source: { first: ScreenItemNodes; next: ScreenItemNodes };
                },
            >,
        >,
    >

    The retrace's view of this screen, with its errors and services.

    checkpointExtra: (handle: ScreenHandle) => Effect<Json | undefined, SchemaError>

    What a frame keeps beyond what entering it showed (a feed's deepest page), as a checkpoint stores it; absent when the screen keeps nothing.

    data: ScreenCodec<
        {
            entries: readonly {
                key: string;
                media: {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                };
                position: number;
            }[];
            next?: { maxId: string };
            opensOnOneReel?: boolean;
        },
    >

    What enter returns: the user's data, under the handle's data; never in a trail.

    enter: (
        args: ScreenEnter<
            | {
                chaining?: {
                    chainingSessionId?: string;
                    mediaPctWatched?: string
                    | number;
                    rankingSessionId?: string;
                };
                index: number;
                reels: readonly {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                }[];
            }
            | {
                chainingPosition?: string
                | number;
                chainingSeedMediaId?: string;
                chainingSessionId?: string;
                clientPosition?: string | number;
                friendsLane?: false;
                media?: {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                };
                mediaPctWatched?: string
                | number;
                rankingSessionId?: string;
                storyRankingToken?: string;
            },
        >,
    ) => Effect<
        {
            entries: readonly {
                key: string;
                media: {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                };
                position: number;
            }[];
            next?: { maxId: string };
            opensOnOneReel?: boolean;
        },
        IgApiError
        | RequestError
        | ParseError
        | TransportError
        | ScreenDataError,

            | PlainJsonApiHttp
            | Signature
            | MobileSession
            | MobileDevice
            | GraphqlJsonHttp
            | MobileApplication
            | NavigationWire
            | MobileNavigation
            | MobileUserFlows
            | AndroidThrottlingDetector
            | AndroidClientAddress,
    >

    The burst: the first page and the navigation, as any feed's. onSwipe is not part of it — its failure belongs to swipeToNext and stream alone — so a caller of OpenApp never handles an error the enter cannot emit.

    findItem: (
        host: ScreenHandle,
        item: ScreenItemLocation,
    ) => Effect<
        ScreenHandle
        | undefined,
        ScreenLookupFailure<
            | IgApiError
            | RequestError
            | ParseError
            | TransportError
            | ScreenDataError,
            ScreenFeedItems<
                {
                    at: "entries";
                    item: ScreenItemDefinition<
                        "ReelsViewerReel",
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: (...)
                                | (...); pk?: (...) | (...) };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: (...)
                                | (...); pk?: (...) | (...) };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        ReelsViewerReelState,
                        never,
                        never,
                        {
                            like: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                (...)
                                | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                            openComments: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<
                                    ScreenDefinition<
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                    >,
                                    readonly [(...)],
                                    "button",
                                    AndroidScreens,
                                >,
                                (...args: readonly [(...)]) => Effect<(...), (...), (...)>,
                            >;
                            unlike: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                ActionValue<(...)>,
                                (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                        },
                        {
                            facts: {
                                chaining: {
                                    chainingPosition?: string
                                    | number;
                                    chainingSeedMediaId?: string;
                                    chainingSessionId?: string;
                                    clientPosition?: string | number;
                                    mediaPctWatched?: string | number;
                                    rankingSessionId?: string;
                                    storyRankingToken?: string;
                                };
                                startPosition: number;
                            };
                        },
                        never,
                    >;
                    key: "key";
                    source: { first: ScreenItemNodes; next: ScreenItemNodes };
                },
            >,
        >,
        ScreenStepServices<
            | PlainJsonApiHttp
            | Signature
            | MobileSession
            | MobileDevice
            | GraphqlJsonHttp
            | MobileApplication
            | NavigationWire
            | MobileNavigation
            | MobileUserFlows
            | AndroidThrottlingDetector
            | AndroidClientAddress,
            ScreenFeedItems<
                {
                    at: "entries";
                    item: ScreenItemDefinition<
                        "ReelsViewerReel",
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: (...)
                                | (...); pk?: (...) | (...) };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: (...)
                                | (...); pk?: (...) | (...) };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        ReelsViewerReelState,
                        never,
                        never,
                        {
                            like: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                (...)
                                | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                            openComments: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<
                                    ScreenDefinition<
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                    >,
                                    readonly [(...)],
                                    "button",
                                    AndroidScreens,
                                >,
                                (...args: readonly [(...)]) => Effect<(...), (...), (...)>,
                            >;
                            unlike: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                ActionValue<(...)>,
                                (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                        },
                        {
                            facts: {
                                chaining: {
                                    chainingPosition?: string
                                    | number;
                                    chainingSeedMediaId?: string;
                                    chainingSessionId?: string;
                                    clientPosition?: string | number;
                                    mediaPctWatched?: string | number;
                                    rankingSessionId?: string;
                                    storyRankingToken?: string;
                                };
                                startPosition: number;
                            };
                        },
                        never,
                    >;
                    key: "key";
                    source: { first: ScreenItemNodes; next: ScreenItemNodes };
                },
            >,
        >,
    >
    id: "ReelsViewer"
    input: ScreenCodec<
        | {
            chaining?: {
                chainingSessionId?: string;
                mediaPctWatched?: string
                | number;
                rankingSessionId?: string;
            };
            index: number;
            reels: readonly {
                code: string;
                id: string;
                media_type: number;
                organic_tracking_token?: string;
                pk: string;
                taken_at?: number;
                user?: { id?: string; pk?: string };
                video_duration?: number;
            }[];
        }
        | {
            chainingPosition?: string
            | number;
            chainingSeedMediaId?: string;
            chainingSessionId?: string;
            clientPosition?: string | number;
            friendsLane?: false;
            media?: {
                code: string;
                id: string;
                media_type: number;
                organic_tracking_token?: string;
                pk: string;
                taken_at?: number;
                user?: { id?: string; pk?: string };
                video_duration?: number;
            };
            mediaPctWatched?: string
            | number;
            rankingSessionId?: string;
            storyRankingToken?: string;
        },
        ScreenEncodedInput,
    >

    What an edge passes to enter — for an item, the schema of one list entry.

    is: (
        value: unknown,
    ) => value is AssembledHandle<
        "ReelsViewer",
        "tab",
        {
            entries: readonly {
                key: string;
                media: {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                };
                position: number;
            }[];
            next?: { maxId: string };
            opensOnOneReel?: boolean;
        },
        { openCamera: ReelsViewerCameraEdge } & Omit<
            ScreenFeedMembers<
                {
                    initial?: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: (...)
                        | (...); pk?: (...) | (...) };
                        video_duration?: number;
                    };
                    maxId?: string;
                },
                {
                    at: "entries";
                    item: ScreenItemDefinition<
                        "ReelsViewerReel",
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: ...; pk?: ... };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: ...; pk?: ... };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        ReelsViewerReelState,
                        never,
                        never,
                        {
                            like: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (...args: []) => Effect<(...), (...), (...)>;
                            openComments: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<(...), (...), (...), (...)>,
                                (...args: ...) => ...,
                            >;
                            unlike: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (...args: []) => Effect<(...), (...), (...)>;
                        },
                        {
                            facts: {
                                chaining: {
                                    chainingPosition?: (...)
                                    | (...)
                                    | (...);
                                    chainingSeedMediaId?: (...) | (...);
                                    chainingSessionId?: (...) | (...);
                                    clientPosition?: (...) | (...) | (...);
                                    mediaPctWatched?: (...) | (...) | (...);
                                    rankingSessionId?: (...) | (...);
                                    storyRankingToken?: (...) | (...);
                                };
                                startPosition: number;
                            };
                        },
                        never,
                    >;
                    key: "key";
                    source: { first: ScreenItemNodes; next: ScreenItemNodes };
                },
                IgApiError
                | RequestError
                | ParseError
                | TransportError
                | ScreenDataError,
                PlainJsonApiHttp | MobileDevice | NavigationWire | AndroidClientAddress,
            >,
            "stream",
        > & ScreenSwipeMembers<
            {
                initial?: {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                };
                maxId?: string;
            },
            {
                at: "entries";
                item: ScreenItemDefinition<
                    "ReelsViewerReel",
                    {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: (...)
                            | (...); pk?: (...) | (...) };
                            video_duration?: number;
                        };
                        position: number;
                    },
                    {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: (...)
                            | (...); pk?: (...) | (...) };
                            video_duration?: number;
                        };
                        position: number;
                    },
                    ReelsViewerReelState,
                    never,
                    never,
                    {
                        like: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            (...)
                            | (...),
                            (...) | (...) | (...) | (...) | (...) | (...) | (...),
                            (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...),
                        >;
                        openComments: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => ScreenEdgeBound<
                            ScreenEdgeShape<
                                ScreenDefinition<
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                >,
                                readonly [(...)],
                                "button",
                                AndroidScreens,
                            >,
                            (...args: readonly [(...)]) => Effect<(...), (...), (...)>,
                        >;
                        unlike: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            ActionValue<(...)>,
                            (...) | (...) | (...) | (...) | (...),
                            (...) | (...) | (...) | (...) | (...) | (...),
                        >;
                    },
                    {
                        facts: {
                            chaining: {
                                chainingPosition?: string
                                | number;
                                chainingSeedMediaId?: string;
                                chainingSessionId?: string;
                                clientPosition?: string | number;
                                mediaPctWatched?: string | number;
                                rankingSessionId?: string;
                                storyRankingToken?: string;
                            };
                            startPosition: number;
                        };
                    },
                    never,
                >;
                key: "key";
                source: { first: ScreenItemNodes; next: ScreenItemNodes };
            },
            ScreenFeedSwipeFailure<
                | IgApiError
                | RequestError
                | ParseError
                | TransportError
                | ScreenDataError,
                {
                    at: "entries";
                    item: ScreenItemDefinition<
                        "ReelsViewerReel",
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: ...; pk?: ... };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: ...; pk?: ... };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        ReelsViewerReelState,
                        never,
                        never,
                        {
                            like: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (...args: []) => Effect<(...), (...), (...)>;
                            openComments: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<(...), (...), (...), (...)>,
                                (...args: ...) => ...,
                            >;
                            unlike: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (...args: []) => Effect<(...), (...), (...)>;
                        },
                        {
                            facts: {
                                chaining: {
                                    chainingPosition?: (...)
                                    | (...)
                                    | (...);
                                    chainingSeedMediaId?: (...) | (...);
                                    chainingSessionId?: (...) | (...);
                                    clientPosition?: (...) | (...) | (...);
                                    mediaPctWatched?: (...) | (...) | (...);
                                    rankingSessionId?: (...) | (...);
                                    storyRankingToken?: (...) | (...);
                                };
                                startPosition: number;
                            };
                        },
                        never,
                    >;
                    key: "key";
                    source: { first: ScreenItemNodes; next: ScreenItemNodes };
                },
            >,
            ScreenFeedPageServices<
                | PlainJsonApiHttp
                | MobileDevice
                | NavigationWire
                | AndroidClientAddress,
                {
                    at: "entries";
                    item: ScreenItemDefinition<
                        "ReelsViewerReel",
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: ...; pk?: ... };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: ...; pk?: ... };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        ReelsViewerReelState,
                        never,
                        never,
                        {
                            like: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (...args: []) => Effect<(...), (...), (...)>;
                            openComments: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<(...), (...), (...), (...)>,
                                (...args: ...) => ...,
                            >;
                            unlike: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (...args: []) => Effect<(...), (...), (...)>;
                        },
                        {
                            facts: {
                                chaining: {
                                    chainingPosition?: (...)
                                    | (...)
                                    | (...);
                                    chainingSeedMediaId?: (...) | (...);
                                    chainingSessionId?: (...) | (...);
                                    clientPosition?: (...) | (...) | (...);
                                    mediaPctWatched?: (...) | (...) | (...);
                                    rankingSessionId?: (...) | (...);
                                    storyRankingToken?: (...) | (...);
                                };
                                startPosition: number;
                            };
                        },
                        never,
                    >;
                    key: "key";
                    source: { first: ScreenItemNodes; next: ScreenItemNodes };
                },
            >,
        >,
        ScreenFeedItems<
            {
                at: "entries";
                item: ScreenItemDefinition<
                    "ReelsViewerReel",
                    {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        position: number;
                    },
                    {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        position: number;
                    },
                    ReelsViewerReelState,
                    never,
                    never,
                    {
                        like: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            (...) & (...)
                            | (...) & (...),

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | SchemaError
                                | GraphqlRootFieldMissingError
                                | ScreenEnterConcurrentError,
                            | PlainJsonApiHttp
                            | Signature
                            | MobileSession
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | NavigationWire
                            | MobileNavigation
                            | ScreenStack,
                        >;
                        openComments: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => ScreenEdgeBound<
                            ScreenEdgeShape<
                                ScreenDefinition<
                                    "MediaComments",
                                    "screen",
                                    (...)
                                    | (...),
                                    (...) | (...),
                                    (...) | (...) | (...) | (...),
                                    (...) | (...) | (...) | (...) | (...),

                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...),
                                    { comment: ... },
                                    Record<(...), (...)>,
                                    never,
                                    "mediaId",
                                >,
                                readonly [{ commentSessionId?: ... }],
                                "button",
                                AndroidScreens,
                            >,
                            (
                                ...args: readonly [{ commentSessionId?: ... }],
                            ) => Effect<
                                AssembledHandle<
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                    (...),
                                >,
                                (...) | (...) | (...) | (...) | (...) | (...) | (...),

                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...)
                                    | (...),
                            >,
                        >;
                        unlike: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            ActionValue<string>,

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | ScreenEnterConcurrentError,
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | NavigationWire
                            | MobileNavigation
                            | ScreenStack,
                        >;
                    },
                    {
                        facts: {
                            chaining: {
                                chainingPosition?: string
                                | number;
                                chainingSeedMediaId?: string;
                                chainingSessionId?: string;
                                clientPosition?: string | number;
                                mediaPctWatched?: string | number;
                                rankingSessionId?: string;
                                storyRankingToken?: string;
                            };
                            startPosition: number;
                        };
                    },
                    never,
                >;
                key: "key";
                source: { first: ScreenItemNodes; next: ScreenItemNodes };
            },
        >,
        ScreenHandle
        | undefined,
        "optional",
        false,
        never,
        unknown,
    >

    Whether value is this screen's handle: the narrowing of a union of handles — what back returns (the screens that can open the screen), or the launch's first-screen union — written XxxScreen.is(handle) (owner decision, 2026-10-23: the guard is a method of the definition, not a free function).

    items:
        | ScreenFeedItems<
            {
                at: "entries";
                item: ScreenItemDefinition<
                    "ReelsViewerReel",
                    {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        position: number;
                    },
                    {
                        key: string;
                        media: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        position: number;
                    },
                    ReelsViewerReelState,
                    never,
                    never,
                    {
                        like: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            { data: ... } & { raw: ... }
                            | MediaLikeRestResponse & { raw: ... },

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | SchemaError
                                | GraphqlRootFieldMissingError
                                | ScreenEnterConcurrentError,
                            | PlainJsonApiHttp
                            | Signature
                            | MobileSession
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | NavigationWire
                            | MobileNavigation
                            | ScreenStack,
                        >;
                        openComments: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => ScreenEdgeBound<
                            ScreenEdgeShape<
                                ScreenDefinition<
                                    "MediaComments",
                                    "screen",
                                    | {
                                        carousel?: ...;
                                        chainingSeedMediaId?: ...;
                                        commentSessionId?: ...;
                                        feedPosition?: ...;
                                        mediaId: ...;
                                        rankingSessionId?: ...;
                                        surface: ...;
                                    }
                                    | {
                                        chainingPosition?: ...;
                                        chainingSeedMediaId?: ...;
                                        chainingSessionId?: ...;
                                        clientPosition?: ...;
                                        commentSessionId?: ...;
                                        mediaId: ...;
                                        rankingSessionId?: ...;
                                        storyRankingToken?: ...;
                                        surface: ...;
                                    },
                                    | {
                                        commentSessionId: ...;
                                        createdMediaNoteIds: ...;
                                        mediaId: ...;
                                        slide?: ...;
                                        surface: ...;
                                    }
                                    | {
                                        commentSessionId: ...;
                                        createdMediaNoteIds: ...;
                                        mediaId: ...;
                                        surface: ...;
                                    },
                                    (...) & (...)
                                    | never
                                    | never
                                    | (...) & (...),

                                        | IgApiError
                                        | RequestError
                                        | ParseError
                                        | TransportError
                                        | ScreenDataError,
                                    | PlainJsonApiHttp
                                    | MobileSession
                                    | MobileDevice
                                    | GraphqlJsonHttp
                                    | MobileApplication
                                    | MobileNavigation
                                    | JsonResponseHttp
                                    | MobileUserFlows
                                    | MediaCommentsReads
                                    | AndroidQuickPromotionStash,
                                    { comment: (self: ..., state: ...) => ... },
                                    Record<never, never>,
                                    never,
                                    "mediaId",
                                >,
                                readonly [{ commentSessionId?: (...) | (...) }],
                                "button",
                                AndroidScreens,
                            >,
                            (
                                ...args: readonly [{ commentSessionId?: (...) | (...) }],
                            ) => Effect<
                                AssembledHandle<
                                    "MediaComments",
                                    "screen",
                                    (...)
                                    | (...),
                                    { comment: ... },
                                    Record<(...), (...)>,
                                    ScreenHandle,
                                    "required",
                                    true,
                                    "mediaId",
                                    AndroidScreens,
                                >,

                                    | IgApiError
                                    | RequestError
                                    | ParseError
                                    | TransportError
                                    | ScreenDataError
                                    | ScreenEnterConcurrentError
                                    | ScreenEdgeInputError,
                                | PlainJsonApiHttp
                                | MobileSession
                                | MobileDevice
                                | GraphqlJsonHttp
                                | MobileApplication
                                | MobileNavigation
                                | JsonResponseHttp
                                | MobileUserFlows
                                | ScreenStack
                                | MediaCommentsReads
                                | AndroidQuickPromotionStash
                                | ScreenCatalog,
                            >,
                        >;
                        unlike: (
                            self: ScreenHandle,
                            state: ReelsViewerReelState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            ActionValue<string>,

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | ScreenEnterConcurrentError,
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | NavigationWire
                            | MobileNavigation
                            | ScreenStack,
                        >;
                    },
                    {
                        facts: {
                            chaining: {
                                chainingPosition?: string
                                | number;
                                chainingSeedMediaId?: string;
                                chainingSessionId?: string;
                                clientPosition?: string | number;
                                mediaPctWatched?: string | number;
                                rankingSessionId?: string;
                                storyRankingToken?: string;
                            };
                            startPosition: number;
                        };
                    },
                    never,
                >;
                key: "key";
                source: { first: ScreenItemNodes; next: ScreenItemNodes };
            },
        >
        | undefined

    Absent when the screen shows no item lists.

    itemVisits: boolean

    Whether the items of its lists have visits (leave, resume): a plain feed's have none.

    kind: "tab"
    leave:
        | (
            (
                left: ScreenLeave<
                    | {
                        chaining?: {
                            chainingSessionId?: string;
                            mediaPctWatched?: string
                            | number;
                            rankingSessionId?: string;
                        };
                        index: number;
                        reels: readonly {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        }[];
                    }
                    | {
                        chainingPosition?: string
                        | number;
                        chainingSeedMediaId?: string;
                        chainingSessionId?: string;
                        clientPosition?: string | number;
                        friendsLane?: false;
                        media?: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        mediaPctWatched?: string
                        | number;
                        rankingSessionId?: string;
                        storyRankingToken?: string;
                    },
                    {
                        entries: readonly {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            position: number;
                        }[];
                        next?: { maxId: string };
                        opensOnOneReel?: boolean;
                    },
                    ScreenFeedState<
                        {
                            initial?: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            maxId?: string;
                        },
                        ReelsViewerFacts,
                    >,
                >,
            ) => Effect<
                void,
                never,
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | NavigationWire
                | MobileNavigation
                | MobileUserFlows
                | AndroidThrottlingDetector
                | AndroidClientAddress,
            >
        )
        | undefined

    What the engine runs each time the thing stops being on top — covered by another screen, closed, or left by a tab switch — after the transition that did it committed. It receives the visit that ended, with its duration by the engine's clock. It cannot fail; absent when the thing does nothing then.

    ownsCheckpoint: OwnsCheckpoint<"ReelsViewer">

    Whether checkpoint is this screen's, read synchronously from the id it carries, from the object or from its JSON text (owner decision, 2026-10-24: the caller never parses before the call). A type guard for the object form, so after it the platform's restores of this screen (AndroidIgpapi.resumeSilently({ checkpoint, screen: XxxScreen, … })) cannot refuse with a mismatch; a string answers a plain boolean. A corrupt checkpoint still fails them with CheckpointDecodeError.

    The restores themselves are the platform's: they build the process from the checkpoint, so they are installed on the definition by the platform package, and the platform's type of the definition carries them (owner decision, 2026-10-24).

    positionOf: (handle: ScreenHandle) => Json | undefined

    Where the screen's frame is beyond what entering shows (a feed's deepest page shown), for a trail; absent when nowhere beyond.

    readReleased?: ScreenReleasedReader

    How a checkpoint written by an earlier release is read into this screen: the stored input and data, in the shape that release gave them, become the current stored shape before the definition's schemas decode them. A field the release wrote and the screen no longer holds is read with a schema of its own and mapped into where its fact lives now, or dropped with a logged StoredSnapshotFieldDropped; it never fails the restore (“Stored snapshots of earlier releases”). Absent on a screen whose stored shape never changed; a frame already in the current shape passes through it unchanged.

    readReleasedInput?: ScreenReleasedInputReader

    The same reading for an input stored alone — a trail's root and steps, the process's root: the input of an earlier release, read into the current stored shape before the screen's input schema decodes it.

    releasedItemLists: Readonly<Record<string, string>>

    The names a released trail format gave this screen's item lists, mapped to the current ones (a feed's items were page in formats 1 and 2): a retrace of a released trail reads a step's list through it.

    restoreCheckpointExtra: (
        handle: ScreenHandle,
        extra: Json,
    ) => Effect<
        void,
        ScreenDataError
        | CheckpointDecodeError,

            | ScreenStack
            | ScreenStepServices<
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | NavigationWire
                | MobileNavigation
                | MobileUserFlows
                | AndroidThrottlingDetector
                | AndroidClientAddress,
                ScreenFeedItems<
                    {
                        at: "entries";
                        item: ScreenItemDefinition<
                            "ReelsViewerReel",
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: ...; pk?: ... };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            {
                                key: string;
                                media: {
                                    code: string;
                                    id: string;
                                    media_type: number;
                                    organic_tracking_token?: string;
                                    pk: string;
                                    taken_at?: number;
                                    user?: { id?: ...; pk?: ... };
                                    video_duration?: number;
                                };
                                position: number;
                            },
                            ReelsViewerReelState,
                            never,
                            never,
                            {
                                like: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (...args: []) => Effect<(...), (...), (...)>;
                                openComments: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => ScreenEdgeBound<
                                    ScreenEdgeShape<(...), (...), (...), (...)>,
                                    (...args: ...) => ...,
                                >;
                                unlike: (
                                    self: ScreenHandle,
                                    state: ReelsViewerReelState,
                                ) => (...args: []) => Effect<(...), (...), (...)>;
                            },
                            {
                                facts: {
                                    chaining: {
                                        chainingPosition?: (...)
                                        | (...)
                                        | (...);
                                        chainingSeedMediaId?: (...) | (...);
                                        chainingSessionId?: (...) | (...);
                                        clientPosition?: (...) | (...) | (...);
                                        mediaPctWatched?: (...) | (...) | (...);
                                        rankingSessionId?: (...) | (...);
                                        storyRankingToken?: (...) | (...);
                                    };
                                    startPosition: number;
                                };
                            },
                            never,
                        >;
                        key: "key";
                        source: { first: ScreenItemNodes; next: ScreenItemNodes };
                    },
                >,
            >,
    >

    Puts that back into a handle a checkpoint rebuilt, before any action runs.

    restorePosition: (
        handle: ScreenHandle,
        position: Json,
    ) => Effect<
        void,
        ScreenLookupFailure<
            | IgApiError
            | RequestError
            | ParseError
            | TransportError
            | ScreenDataError,
            ScreenFeedItems<
                {
                    at: "entries";
                    item: ScreenItemDefinition<
                        "ReelsViewerReel",
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: (...)
                                | (...); pk?: (...) | (...) };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: (...)
                                | (...); pk?: (...) | (...) };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        ReelsViewerReelState,
                        never,
                        never,
                        {
                            like: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                (...)
                                | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                            openComments: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<
                                    ScreenDefinition<
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                    >,
                                    readonly [(...)],
                                    "button",
                                    AndroidScreens,
                                >,
                                (...args: readonly [(...)]) => Effect<(...), (...), (...)>,
                            >;
                            unlike: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                ActionValue<(...)>,
                                (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                        },
                        {
                            facts: {
                                chaining: {
                                    chainingPosition?: string
                                    | number;
                                    chainingSeedMediaId?: string;
                                    chainingSessionId?: string;
                                    clientPosition?: string | number;
                                    mediaPctWatched?: string | number;
                                    rankingSessionId?: string;
                                    storyRankingToken?: string;
                                };
                                startPosition: number;
                            };
                        },
                        never,
                    >;
                    key: "key";
                    source: { first: ScreenItemNodes; next: ScreenItemNodes };
                },
            >,
        >,
        ScreenStepServices<
            | PlainJsonApiHttp
            | Signature
            | MobileSession
            | MobileDevice
            | GraphqlJsonHttp
            | MobileApplication
            | NavigationWire
            | MobileNavigation
            | MobileUserFlows
            | AndroidThrottlingDetector
            | AndroidClientAddress,
            ScreenFeedItems<
                {
                    at: "entries";
                    item: ScreenItemDefinition<
                        "ReelsViewerReel",
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: (...)
                                | (...); pk?: (...) | (...) };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: (...)
                                | (...); pk?: (...) | (...) };
                                video_duration?: number;
                            };
                            position: number;
                        },
                        ReelsViewerReelState,
                        never,
                        never,
                        {
                            like: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                (...)
                                | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                            openComments: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => ScreenEdgeBound<
                                ScreenEdgeShape<
                                    ScreenDefinition<
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                        (...),
                                    >,
                                    readonly [(...)],
                                    "button",
                                    AndroidScreens,
                                >,
                                (...args: readonly [(...)]) => Effect<(...), (...), (...)>,
                            >;
                            unlike: (
                                self: ScreenHandle,
                                state: ReelsViewerReelState,
                            ) => (
                                ...args: [],
                            ) => Effect<
                                ActionValue<(...)>,
                                (...) | (...) | (...) | (...) | (...),
                                (...) | (...) | (...) | (...) | (...) | (...),
                            >;
                        },
                        {
                            facts: {
                                chaining: {
                                    chainingPosition?: string
                                    | number;
                                    chainingSeedMediaId?: string;
                                    chainingSessionId?: string;
                                    clientPosition?: string | number;
                                    mediaPctWatched?: string | number;
                                    rankingSessionId?: string;
                                    storyRankingToken?: string;
                                };
                                startPosition: number;
                            };
                        },
                        never,
                    >;
                    key: "key";
                    source: { first: ScreenItemNodes; next: ScreenItemNodes };
                },
            >,
        >,
    >

    Brings a fresh frame back to a position a trail stored, sending what the app sends to get there.

    resume:
        | (
            (
                resumed: ScreenResume<
                    | {
                        chaining?: {
                            chainingSessionId?: string;
                            mediaPctWatched?: string
                            | number;
                            rankingSessionId?: string;
                        };
                        index: number;
                        reels: readonly {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        }[];
                    }
                    | {
                        chainingPosition?: string
                        | number;
                        chainingSeedMediaId?: string;
                        chainingSessionId?: string;
                        clientPosition?: string | number;
                        friendsLane?: false;
                        media?: {
                            code: string;
                            id: string;
                            media_type: number;
                            organic_tracking_token?: string;
                            pk: string;
                            taken_at?: number;
                            user?: { id?: string; pk?: string };
                            video_duration?: number;
                        };
                        mediaPctWatched?: string
                        | number;
                        rankingSessionId?: string;
                        storyRankingToken?: string;
                    },
                    {
                        entries: readonly {
                            key: string;
                            media: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            position: number;
                        }[];
                        next?: { maxId: string };
                        opensOnOneReel?: boolean;
                    },
                    ScreenFeedState<
                        {
                            initial?: {
                                code: string;
                                id: string;
                                media_type: number;
                                organic_tracking_token?: string;
                                pk: string;
                                taken_at?: number;
                                user?: { id?: string; pk?: string };
                                video_duration?: number;
                            };
                            maxId?: string;
                        },
                        ReelsViewerFacts,
                    >,
                >,
            ) => Effect<
                void,
                never,
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | NavigationWire
                | MobileNavigation
                | MobileUserFlows
                | AndroidThrottlingDetector
                | AndroidClientAddress,
            >
        )
        | undefined

    What the engine runs each time the thing is on top again after a leave — the screen that covered it was closed — after that transition committed. Never on the first show (that is enter), never after a rolled-back transition. It cannot fail; absent when the thing does nothing then.

    state: (
        opened: ScreenStateArgs<
            | {
                chaining?: {
                    chainingSessionId?: string;
                    mediaPctWatched?: string
                    | number;
                    rankingSessionId?: string;
                };
                index: number;
                reels: readonly {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                }[];
            }
            | {
                chainingPosition?: string
                | number;
                chainingSeedMediaId?: string;
                chainingSessionId?: string;
                clientPosition?: string | number;
                friendsLane?: false;
                media?: {
                    code: string;
                    id: string;
                    media_type: number;
                    organic_tracking_token?: string;
                    pk: string;
                    taken_at?: number;
                    user?: { id?: string; pk?: string };
                    video_duration?: number;
                };
                mediaPctWatched?: string
                | number;
                rankingSessionId?: string;
                storyRankingToken?: string;
            },
            {
                entries: readonly {
                    key: string;
                    media: {
                        code: string;
                        id: string;
                        media_type: number;
                        organic_tracking_token?: string;
                        pk: string;
                        taken_at?: number;
                        user?: { id?: string; pk?: string };
                        video_duration?: number;
                    };
                    position: number;
                }[];
                next?: { maxId: string };
                opensOnOneReel?: boolean;
            },
            undefined,
        >,
    ) => ScreenFeedState

    What continuing from it needs, from its input and data (and, for an item, its host screen's state).