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

    Interface PostingStoryVideoEditorScreenDefinition

    The definition type of PostingStoryVideoEditorScreen, named so declaration emit prints its name rather than serialising the whole definition (the declaration-serialization limit the other screens reachable from a tab root meet; see PostingCameraScreenDefinition).

    interface PostingStoryVideoEditorScreenDefinition {
        "~top"?: ScreenTopLevelMarker<never>;
        actions: {
            shareToYourStory: (
                self: ScreenHandle,
                state: PostingStoryVideoEditorState,
            ) => (
                ...args: [options: { caption?: string }],
            ) => Effect<
                { code?: string; mediaId: string } & { raw: ActionRaw },

                    | IgApiError
                    | RequestError
                    | ParseError
                    | TransportError
                    | PostingVideoEncodeError
                    | ScreenDataError
                    | ScreenEnterConcurrentError
                    | PostingMediaFormatError
                    | PostingMediaNotInProcessError
                    | PostingStoryNotPublishedError,
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | NavigationWire
                | MobileNavigation
                | JsonResponseHttp
                | ScreenStack
                | AndroidPostingMedia,
            >;
        };
        afterAssemble: | ((handle: ScreenHandle) => Effect<void, never, never>)
        | undefined;
        beforeLeave?: (
            left: ScreenBeforeLeave<
                {
                    cameraSessionId: string;
                    folder: string;
                    origin: "feed"
                    | "reels-tab";
                    takenAt?: number;
                    video: {
                        byteLength: number;
                        durationMs: number;
                        height: number;
                        id: string;
                        kind: "video";
                        mimeType: "video/mp4";
                        width: number;
                    };
                },
                {
                    compositionId: string;
                    video: {
                        byteLength: number;
                        durationMs?: number;
                        folder: string;
                        height: number;
                        mimeType: string;
                        takenAt: number;
                        width: number;
                    };
                },
                PostingStoryVideoEditorState,
            >,
        ) => Effect<
            void,
            never,
            | PlainJsonApiHttp
            | Signature
            | MobileSession
            | MobileDevice
            | GraphqlJsonHttp
            | MobileApplication
            | MobileNavigation,
        >;
        beforeResume?: (
            returning: ScreenBeforeResume<
                {
                    cameraSessionId: string;
                    folder: string;
                    origin: "feed"
                    | "reels-tab";
                    takenAt?: number;
                    video: {
                        byteLength: number;
                        durationMs: number;
                        height: number;
                        id: string;
                        kind: "video";
                        mimeType: "video/mp4";
                        width: number;
                    };
                },
                {
                    compositionId: string;
                    video: {
                        byteLength: number;
                        durationMs?: number;
                        folder: string;
                        height: number;
                        mimeType: string;
                        takenAt: number;
                        width: number;
                    };
                },
                PostingStoryVideoEditorState,
            >,
        ) => Effect<
            void,
            never,
            | PlainJsonApiHttp
            | Signature
            | MobileSession
            | MobileDevice
            | GraphqlJsonHttp
            | MobileApplication
            | MobileNavigation,
        >;
        catalogEntry: () => ScreenCatalogEntry<
            ScreenStepFailure<
                | IgCheckpointError
                | IgAccountSuspendedError
                | IgAccountDisabledError
                | IgLoginRequiredError
                | IgUserLoggedOutError,
                Record<never, never>,
            >,
            ScreenStepServices<
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | MobileNavigation,
                Record<never, never>,
            >,
        >;
        checkpointExtra: (
            handle: ScreenHandle,
        ) => Effect<Json | undefined, SchemaError>;
        data: ScreenCodec<
            {
                compositionId: string;
                video: {
                    byteLength: number;
                    durationMs?: number;
                    folder: string;
                    height: number;
                    mimeType: string;
                    takenAt: number;
                    width: number;
                };
            },
        >;
        enter: (
            args: ScreenEnter<
                {
                    cameraSessionId: string;
                    folder: string;
                    origin: "feed"
                    | "reels-tab";
                    takenAt?: number;
                    video: {
                        byteLength: number;
                        durationMs: number;
                        height: number;
                        id: string;
                        kind: "video";
                        mimeType: "video/mp4";
                        width: number;
                    };
                },
            >,
        ) => Effect<
            {
                compositionId: string;
                video: {
                    byteLength: number;
                    durationMs?: number;
                    folder: string;
                    height: number;
                    mimeType: string;
                    takenAt: number;
                    width: number;
                };
            },
            | IgCheckpointError
            | IgAccountSuspendedError
            | IgAccountDisabledError
            | IgLoginRequiredError
            | IgUserLoggedOutError,
            | PlainJsonApiHttp
            | Signature
            | MobileSession
            | MobileDevice
            | GraphqlJsonHttp
            | MobileApplication
            | MobileNavigation,
        >;
        findItem: (
            host: ScreenHandle,
            item: ScreenItemLocation,
        ) => Effect<
            ScreenHandle
            | undefined,
            ScreenLookupFailure<
                | IgCheckpointError
                | IgAccountSuspendedError
                | IgAccountDisabledError
                | IgLoginRequiredError
                | IgUserLoggedOutError,
                Record<never, never>,
            >,
            ScreenStepServices<
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | MobileNavigation,
                Record<never, never>,
            >,
        >;
        id: "PostingStoryVideoEditor";
        input: ScreenCodec<
            {
                cameraSessionId: string;
                folder: string;
                origin: "feed"
                | "reels-tab";
                takenAt?: number;
                video: {
                    byteLength: number;
                    durationMs: number;
                    height: number;
                    id: string;
                    kind: "video";
                    mimeType: "video/mp4";
                    width: number;
                };
            },
            ScreenEncodedInput,
        >;
        is: (
            value: unknown,
        ) => value is AssembledHandle<
            "PostingStoryVideoEditor",
            "screen",
            {
                compositionId: string;
                video: {
                    byteLength: number;
                    durationMs?: number;
                    folder: string;
                    height: number;
                    mimeType: string;
                    takenAt: number;
                    width: number;
                };
            },
            {
                shareToYourStory: (
                    self: ScreenHandle,
                    state: PostingStoryVideoEditorState,
                ) => (
                    ...args: [options: { caption?: string }],
                ) => Effect<
                    { code?: string; mediaId: string } & { raw: ActionRaw },

                        | IgApiError
                        | RequestError
                        | ParseError
                        | TransportError
                        | PostingVideoEncodeError
                        | ScreenDataError
                        | ScreenEnterConcurrentError
                        | PostingMediaFormatError
                        | PostingMediaNotInProcessError
                        | PostingStoryNotPublishedError,
                    | PlainJsonApiHttp
                    | Signature
                    | MobileSession
                    | MobileDevice
                    | GraphqlJsonHttp
                    | MobileApplication
                    | NavigationWire
                    | MobileNavigation
                    | JsonResponseHttp
                    | ScreenStack
                    | AndroidPostingMedia,
                >;
            },
            Record<never, never>,
            ScreenHandle | undefined,
            "optional",
            true,
            never,
            unknown,
        >;
        items: Record<never, never> | undefined;
        itemVisits: boolean;
        kind: "screen";
        leave:
            | (
                (
                    left: ScreenLeave<
                        {
                            cameraSessionId: string;
                            folder: string;
                            origin: "feed"
                            | "reels-tab";
                            takenAt?: number;
                            video: {
                                byteLength: number;
                                durationMs: number;
                                height: number;
                                id: string;
                                kind: "video";
                                mimeType: "video/mp4";
                                width: number;
                            };
                        },
                        {
                            compositionId: string;
                            video: {
                                byteLength: number;
                                durationMs?: number;
                                folder: string;
                                height: number;
                                mimeType: string;
                                takenAt: number;
                                width: number;
                            };
                        },
                        PostingStoryVideoEditorState,
                    >,
                ) => Effect<
                    void,
                    never,
                    | PlainJsonApiHttp
                    | Signature
                    | MobileSession
                    | MobileDevice
                    | GraphqlJsonHttp
                    | MobileApplication
                    | MobileNavigation,
                >
            )
            | undefined;
        ownsCheckpoint: OwnsCheckpoint<"PostingStoryVideoEditor">;
        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
                    | MobileNavigation,
                    Record<never, never>,
                >,
        >;
        restorePosition: (
            handle: ScreenHandle,
            position: Json,
        ) => Effect<
            void,
            ScreenLookupFailure<
                | IgCheckpointError
                | IgAccountSuspendedError
                | IgAccountDisabledError
                | IgLoginRequiredError
                | IgUserLoggedOutError,
                Record<never, never>,
            >,
            ScreenStepServices<
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | MobileNavigation,
                Record<never, never>,
            >,
        >;
        resume:
            | (
                (
                    resumed: ScreenResume<
                        {
                            cameraSessionId: string;
                            folder: string;
                            origin: "feed"
                            | "reels-tab";
                            takenAt?: number;
                            video: {
                                byteLength: number;
                                durationMs: number;
                                height: number;
                                id: string;
                                kind: "video";
                                mimeType: "video/mp4";
                                width: number;
                            };
                        },
                        {
                            compositionId: string;
                            video: {
                                byteLength: number;
                                durationMs?: number;
                                folder: string;
                                height: number;
                                mimeType: string;
                                takenAt: number;
                                width: number;
                            };
                        },
                        PostingStoryVideoEditorState,
                    >,
                ) => Effect<
                    void,
                    never,
                    | PlainJsonApiHttp
                    | Signature
                    | MobileSession
                    | MobileDevice
                    | GraphqlJsonHttp
                    | MobileApplication
                    | MobileNavigation,
                >
            )
            | undefined;
        state: (
            opened: ScreenStateArgs<
                {
                    cameraSessionId: string;
                    folder: string;
                    origin: "feed"
                    | "reels-tab";
                    takenAt?: number;
                    video: {
                        byteLength: number;
                        durationMs: number;
                        height: number;
                        id: string;
                        kind: "video";
                        mimeType: "video/mp4";
                        width: number;
                    };
                },
                {
                    compositionId: string;
                    video: {
                        byteLength: number;
                        durationMs?: number;
                        folder: string;
                        height: number;
                        mimeType: string;
                        takenAt: number;
                        width: number;
                    };
                },
                undefined,
            >,
        ) => PostingStoryVideoEditorState;
        "~opens"?(target: never): void;
        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 postingStoryVideoEditorScreen>
      • PostingStoryVideoEditorScreenDefinition
    Index

    Methods

    • 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

    • 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

    "~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: {
        shareToYourStory: (
            self: ScreenHandle,
            state: PostingStoryVideoEditorState,
        ) => (
            ...args: [options: { caption?: string }],
        ) => Effect<
            { code?: string; mediaId: string } & { raw: ActionRaw },

                | IgApiError
                | RequestError
                | ParseError
                | TransportError
                | PostingVideoEncodeError
                | ScreenDataError
                | ScreenEnterConcurrentError
                | PostingMediaFormatError
                | PostingMediaNotInProcessError
                | PostingStoryNotPublishedError,
            | PlainJsonApiHttp
            | Signature
            | MobileSession
            | MobileDevice
            | GraphqlJsonHttp
            | MobileApplication
            | NavigationWire
            | MobileNavigation
            | JsonResponseHttp
            | ScreenStack
            | AndroidPostingMedia,
        >;
    }

    Type Declaration

    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<
            {
                cameraSessionId: string;
                folder: string;
                origin: "feed"
                | "reels-tab";
                takenAt?: number;
                video: {
                    byteLength: number;
                    durationMs: number;
                    height: number;
                    id: string;
                    kind: "video";
                    mimeType: "video/mp4";
                    width: number;
                };
            },
            {
                compositionId: string;
                video: {
                    byteLength: number;
                    durationMs?: number;
                    folder: string;
                    height: number;
                    mimeType: string;
                    takenAt: number;
                    width: number;
                };
            },
            PostingStoryVideoEditorState,
        >,
    ) => Effect<
        void,
        never,
        | PlainJsonApiHttp
        | Signature
        | MobileSession
        | MobileDevice
        | GraphqlJsonHttp
        | MobileApplication
        | MobileNavigation,
    >

    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<
            {
                cameraSessionId: string;
                folder: string;
                origin: "feed"
                | "reels-tab";
                takenAt?: number;
                video: {
                    byteLength: number;
                    durationMs: number;
                    height: number;
                    id: string;
                    kind: "video";
                    mimeType: "video/mp4";
                    width: number;
                };
            },
            {
                compositionId: string;
                video: {
                    byteLength: number;
                    durationMs?: number;
                    folder: string;
                    height: number;
                    mimeType: string;
                    takenAt: number;
                    width: number;
                };
            },
            PostingStoryVideoEditorState,
        >,
    ) => Effect<
        void,
        never,
        | PlainJsonApiHttp
        | Signature
        | MobileSession
        | MobileDevice
        | GraphqlJsonHttp
        | MobileApplication
        | MobileNavigation,
    >

    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<
            | IgCheckpointError
            | IgAccountSuspendedError
            | IgAccountDisabledError
            | IgLoginRequiredError
            | IgUserLoggedOutError,
            Record<never, never>,
        >,
        ScreenStepServices<
            | PlainJsonApiHttp
            | Signature
            | MobileSession
            | MobileDevice
            | GraphqlJsonHttp
            | MobileApplication
            | MobileNavigation,
            Record<never, never>,
        >,
    >

    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<
        {
            compositionId: string;
            video: {
                byteLength: number;
                durationMs?: number;
                folder: string;
                height: number;
                mimeType: string;
                takenAt: number;
                width: number;
            };
        },
    >

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

    enter: (
        args: ScreenEnter<
            {
                cameraSessionId: string;
                folder: string;
                origin: "feed"
                | "reels-tab";
                takenAt?: number;
                video: {
                    byteLength: number;
                    durationMs: number;
                    height: number;
                    id: string;
                    kind: "video";
                    mimeType: "video/mp4";
                    width: number;
                };
            },
        >,
    ) => Effect<
        {
            compositionId: string;
            video: {
                byteLength: number;
                durationMs?: number;
                folder: string;
                height: number;
                mimeType: string;
                takenAt: number;
                width: number;
            };
        },
        | IgCheckpointError
        | IgAccountSuspendedError
        | IgAccountDisabledError
        | IgLoginRequiredError
        | IgUserLoggedOutError,
        | PlainJsonApiHttp
        | Signature
        | MobileSession
        | MobileDevice
        | GraphqlJsonHttp
        | MobileApplication
        | MobileNavigation,
    >
    findItem: (
        host: ScreenHandle,
        item: ScreenItemLocation,
    ) => Effect<
        ScreenHandle
        | undefined,
        ScreenLookupFailure<
            | IgCheckpointError
            | IgAccountSuspendedError
            | IgAccountDisabledError
            | IgLoginRequiredError
            | IgUserLoggedOutError,
            Record<never, never>,
        >,
        ScreenStepServices<
            | PlainJsonApiHttp
            | Signature
            | MobileSession
            | MobileDevice
            | GraphqlJsonHttp
            | MobileApplication
            | MobileNavigation,
            Record<never, never>,
        >,
    >
    id: "PostingStoryVideoEditor"
    input: ScreenCodec<
        {
            cameraSessionId: string;
            folder: string;
            origin: "feed"
            | "reels-tab";
            takenAt?: number;
            video: {
                byteLength: number;
                durationMs: number;
                height: number;
                id: string;
                kind: "video";
                mimeType: "video/mp4";
                width: number;
            };
        },
        ScreenEncodedInput,
    >

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

    is: (
        value: unknown,
    ) => value is AssembledHandle<
        "PostingStoryVideoEditor",
        "screen",
        {
            compositionId: string;
            video: {
                byteLength: number;
                durationMs?: number;
                folder: string;
                height: number;
                mimeType: string;
                takenAt: number;
                width: number;
            };
        },
        {
            shareToYourStory: (
                self: ScreenHandle,
                state: PostingStoryVideoEditorState,
            ) => (
                ...args: [options: { caption?: string }],
            ) => Effect<
                { code?: string; mediaId: string } & { raw: ActionRaw },

                    | IgApiError
                    | RequestError
                    | ParseError
                    | TransportError
                    | PostingVideoEncodeError
                    | ScreenDataError
                    | ScreenEnterConcurrentError
                    | PostingMediaFormatError
                    | PostingMediaNotInProcessError
                    | PostingStoryNotPublishedError,
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | NavigationWire
                | MobileNavigation
                | JsonResponseHttp
                | ScreenStack
                | AndroidPostingMedia,
            >;
        },
        Record<never, never>,
        ScreenHandle | undefined,
        "optional",
        true,
        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: Record<never, never> | 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: "screen"
    leave:
        | (
            (
                left: ScreenLeave<
                    {
                        cameraSessionId: string;
                        folder: string;
                        origin: "feed"
                        | "reels-tab";
                        takenAt?: number;
                        video: {
                            byteLength: number;
                            durationMs: number;
                            height: number;
                            id: string;
                            kind: "video";
                            mimeType: "video/mp4";
                            width: number;
                        };
                    },
                    {
                        compositionId: string;
                        video: {
                            byteLength: number;
                            durationMs?: number;
                            folder: string;
                            height: number;
                            mimeType: string;
                            takenAt: number;
                            width: number;
                        };
                    },
                    PostingStoryVideoEditorState,
                >,
            ) => Effect<
                void,
                never,
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | MobileNavigation,
            >
        )
        | 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<"PostingStoryVideoEditor">

    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
                | MobileNavigation,
                Record<never, never>,
            >,
    >

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

    restorePosition: (
        handle: ScreenHandle,
        position: Json,
    ) => Effect<
        void,
        ScreenLookupFailure<
            | IgCheckpointError
            | IgAccountSuspendedError
            | IgAccountDisabledError
            | IgLoginRequiredError
            | IgUserLoggedOutError,
            Record<never, never>,
        >,
        ScreenStepServices<
            | PlainJsonApiHttp
            | Signature
            | MobileSession
            | MobileDevice
            | GraphqlJsonHttp
            | MobileApplication
            | MobileNavigation,
            Record<never, never>,
        >,
    >

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

    resume:
        | (
            (
                resumed: ScreenResume<
                    {
                        cameraSessionId: string;
                        folder: string;
                        origin: "feed"
                        | "reels-tab";
                        takenAt?: number;
                        video: {
                            byteLength: number;
                            durationMs: number;
                            height: number;
                            id: string;
                            kind: "video";
                            mimeType: "video/mp4";
                            width: number;
                        };
                    },
                    {
                        compositionId: string;
                        video: {
                            byteLength: number;
                            durationMs?: number;
                            folder: string;
                            height: number;
                            mimeType: string;
                            takenAt: number;
                            width: number;
                        };
                    },
                    PostingStoryVideoEditorState,
                >,
            ) => Effect<
                void,
                never,
                | PlainJsonApiHttp
                | Signature
                | MobileSession
                | MobileDevice
                | GraphqlJsonHttp
                | MobileApplication
                | MobileNavigation,
            >
        )
        | 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<
            {
                cameraSessionId: string;
                folder: string;
                origin: "feed"
                | "reels-tab";
                takenAt?: number;
                video: {
                    byteLength: number;
                    durationMs: number;
                    height: number;
                    id: string;
                    kind: "video";
                    mimeType: "video/mp4";
                    width: number;
                };
            },
            {
                compositionId: string;
                video: {
                    byteLength: number;
                    durationMs?: number;
                    folder: string;
                    height: number;
                    mimeType: string;
                    takenAt: number;
                    width: number;
                };
            },
            undefined,
        >,
    ) => PostingStoryVideoEditorState

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