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

    Interface FeedCreationCall

    The create button's call, typed by the mode the caller asks for: naming a mode answers that mode's first screen — the post gallery picker, the story camera or the reel gallery — never a union. The app opens the creation in the mode the account's app was last left in (lastCreationMode): when that is the mode asked for, that mode's first screen opens directly; when it is POST, the gallery picker's own mode selector moves it to STORY or REEL the

    The last signature is not a call — mode: never matches nothing — and its answer is not an Effect; it keeps the framework from flattening this argument → screen map into one union (a member's bound type reads a single call signature).

    • Parameters

      • mode: "post"

      Returns Effect<
          AssembledHandle<
              "PostingGalleryPicker",
              "screen",
              { creationSessionId: string; mode: "post"; origin: "feed"
              | "reels-tab" },
              {
                  pickMedia: (
                      self: ScreenHandle,
                      state: PostingGalleryPickerState,
                  ) => (
                      ...args: [
                          files: readonly [
                              PostingPhotoInput
                              | PostingVideoInput,
                              PostingPhotoInput | PostingVideoInput,
                              PostingPhotoInput | PostingVideoInput,
                          ],
                      ],
                  ) => Effect<
                      AssembledHandle<
                          "PostingPostEdit",
                          "screen",
                          {
                              creationSessionId: string;
                              media: | readonly [
                                  {
                                      byteLength: ...;
                                      height: ...;
                                      id: ...;
                                      kind: ...;
                                      mimeType: ...;
                                      width: ...;
                                  },
                              ]
                              | readonly [(...) | (...), (...) | (...), (...) | (...)];
                              origin: "feed" | "reels-tab";
                          },
                          {
                              next: (
                                  self: ScreenHandle,
                                  state: {
                                      creationSessionId: string;
                                      media: (...) | (...);
                                      origin: (...) | (...);
                                  },
                              ) => (...args: []) => Effect<(...), (...), (...)>;
                          },
                          Record<never, never>,
                          ScreenHandle,
                          "required",
                          true,
                          never,
                          AndroidScreens,
                      >,

                          | IgCheckpointError
                          | IgAccountSuspendedError
                          | IgAccountDisabledError
                          | IgLoginRequiredError
                          | IgUserLoggedOutError
                          | ScreenDataError
                          | ScreenEnterConcurrentError
                          | ScreenEdgeInputError
                          | PostingMediaFormatError,
                      | MobileDevice
                      | GraphqlJsonHttp
                      | MobileApplication
                      | MobileNavigation
                      | ScreenStack
                      | ScreenCatalog
                      | AndroidPostingMedia,
                  >;
                  pickPhoto: (
                      self: ScreenHandle,
                      state: PostingGalleryPickerState,
                  ) => (
                      ...args: [photo: PostingPhotoInput],
                  ) => Effect<
                      AssembledHandle<
                          "PostingPostEdit",
                          "screen",
                          {
                              creationSessionId: string;
                              media: | readonly [
                                  {
                                      byteLength: ...;
                                      height: ...;
                                      id: ...;
                                      kind: ...;
                                      mimeType: ...;
                                      width: ...;
                                  },
                              ]
                              | readonly [(...) | (...), (...) | (...), (...) | (...)];
                              origin: "feed" | "reels-tab";
                          },
                          {
                              next: (
                                  self: ScreenHandle,
                                  state: {
                                      creationSessionId: string;
                                      media: (...) | (...);
                                      origin: (...) | (...);
                                  },
                              ) => (...args: []) => Effect<(...), (...), (...)>;
                          },
                          Record<never, never>,
                          ScreenHandle,
                          "required",
                          true,
                          never,
                          AndroidScreens,
                      >,

                          | IgCheckpointError
                          | IgAccountSuspendedError
                          | IgAccountDisabledError
                          | IgLoginRequiredError
                          | IgUserLoggedOutError
                          | ScreenDataError
                          | ScreenEnterConcurrentError
                          | ScreenEdgeInputError
                          | PostingMediaFormatError,
                      | MobileDevice
                      | GraphqlJsonHttp
                      | MobileApplication
                      | MobileNavigation
                      | ScreenStack
                      | ScreenCatalog
                      | AndroidPostingMedia,
                  >;
                  pickPhotos: (
                      self: ScreenHandle,
                      state: PostingGalleryPickerState,
                  ) => (
                      ...args: [photos: readonly [PostingPhotoInput, PostingPhotoInput]],
                  ) => Effect<
                      AssembledHandle<
                          "PostingPostEdit",
                          "screen",
                          {
                              creationSessionId: string;
                              media: | readonly [
                                  {
                                      byteLength: ...;
                                      height: ...;
                                      id: ...;
                                      kind: ...;
                                      mimeType: ...;
                                      width: ...;
                                  },
                              ]
                              | readonly [(...) | (...), (...) | (...), (...) | (...)];
                              origin: "feed" | "reels-tab";
                          },
                          {
                              next: (
                                  self: ScreenHandle,
                                  state: {
                                      creationSessionId: string;
                                      media: (...) | (...);
                                      origin: (...) | (...);
                                  },
                              ) => (...args: []) => Effect<(...), (...), (...)>;
                          },
                          Record<never, never>,
                          ScreenHandle,
                          "required",
                          true,
                          never,
                          AndroidScreens,
                      >,

                          | IgCheckpointError
                          | IgAccountSuspendedError
                          | IgAccountDisabledError
                          | IgLoginRequiredError
                          | IgUserLoggedOutError
                          | ScreenDataError
                          | ScreenEnterConcurrentError
                          | ScreenEdgeInputError
                          | PostingMediaFormatError,
                      | MobileDevice
                      | GraphqlJsonHttp
                      | MobileApplication
                      | MobileNavigation
                      | ScreenStack
                      | ScreenCatalog
                      | AndroidPostingMedia,
                  >;
                  pickVideo: (
                      self: ScreenHandle,
                      state: PostingGalleryPickerState,
                  ) => (
                      ...args: [video: PostingVideoInput],
                  ) => Effect<
                      AssembledHandle<
                          "PostingReelEditor",
                          "screen",
                          {
                              assetId: string;
                              creationSessionId: string;
                              draftId: string;
                              entry: "reel-mode"
                              | "post-mode";
                              media: {
                                  byteLength: number;
                                  durationMs: number;
                                  height: number;
                                  id: string;
                                  kind: "video";
                                  mimeType: "video/mp4";
                                  width: number;
                              };
                              origin: "feed"
                              | "reels-tab";
                          },
                          {
                              next: EditorNext;
                              openMusicBrowser: (
                                  self: ScreenHandle,
                                  state: {
                                      assetId: string;
                                      creationSessionId: string;
                                      draftId: string;
                                      entry: (...) | (...);
                                      media: {
                                          byteLength: ...;
                                          durationMs: ...;
                                          height: ...;
                                          id: ...;
                                          kind: ...;
                                          mimeType: ...;
                                          width: ...;
                                      };
                                      origin: (...)
                                      | (...);
                                  },
                              ) => (...args: []) => Effect<(...), (...), (...)>;
                          },
                          Record<never, never>,
                          ScreenHandle,
                          "required",
                          true,
                          never,
                          AndroidScreens,
                      >,

                          | IgCheckpointError
                          | IgAccountSuspendedError
                          | IgAccountDisabledError
                          | IgLoginRequiredError
                          | IgUserLoggedOutError
                          | ScreenDataError
                          | ScreenEnterConcurrentError
                          | ScreenEdgeInputError
                          | PostingMediaFormatError,
                      | PlainJsonApiHttp
                      | Signature
                      | MobileSession
                      | MobileDevice
                      | GraphqlJsonHttp
                      | MobileApplication
                      | MobileNavigation
                      | MobileUserFlows
                      | ScreenStack
                      | AndroidQuickPromotionStash
                      | ScreenCatalog
                      | AndroidPostingMedia,
                  >;
                  switchMode: (
                      self: ScreenHandle,
                      state: PostingGalleryPickerState,
                  ) => (
                      ...args: [mode: "reel" | "story"],
                  ) => Effect<
                      AssembledHandle<
                          "PostingCamera",
                          "screen",
                          {
                              cameraSessionId: string;
                              entry: | "reels-tab"
                              | "gallery-picker"
                              | "feed-button"
                              | "camera-switch";
                              mode: "reel"
                              | "story";
                              origin: "feed" | "reels-tab";
                          },
                          {
                              openGallery: (
                                  self: ScreenHandle,
                                  state: PostingCameraState,
                              ) => (...args: []) => Effect<(...), (...), (...)>;
                              switchMode: (
                                  self: ScreenHandle,
                                  state: PostingCameraState,
                              ) => ScreenEdgeBound<
                                  ScreenEdgeShape<(...), (...), (...), (...)>,
                                  (mode: ...) => ...,
                              >;
                          },
                          Record<never, never>,
                          ScreenHandle,
                          "required",
                          true,
                          never,
                          AndroidScreens,
                      >,

                          | IgCheckpointError
                          | IgAccountSuspendedError
                          | IgAccountDisabledError
                          | IgLoginRequiredError
                          | IgUserLoggedOutError
                          | ScreenDataError
                          | ScreenEnterConcurrentError
                          | ScreenEdgeInputError,
                      | PlainJsonApiHttp
                      | Signature
                      | MobileSession
                      | MobileDevice
                      | GraphqlJsonHttp
                      | MobileApplication
                      | MobileNavigation
                      | MobileUserFlows
                      | ScreenStack
                      | ScreenCatalog
                      | AndroidPostingMedia,
                  >;
              },
              Record<never, never>,
              ScreenHandle,
              "required",
              true,
              never,
              AndroidScreens,
          >,
      >

    • Parameters

      • mode: "story"

      Returns Effect<
          AssembledHandle<
              "PostingCamera",
              "screen",
              {
                  cameraSessionId: string;
                  entry: "reels-tab"
                  | "gallery-picker"
                  | "feed-button"
                  | "camera-switch";
                  mode: "reel" | "story";
                  origin: "feed" | "reels-tab";
              },
              {
                  openGallery: (
                      self: ScreenHandle,
                      state: PostingCameraState,
                  ) => (
                      ...args: [],
                  ) => Effect<
                      PostingCameraGalleryHandle,
                      | IgCheckpointError
                      | IgAccountSuspendedError
                      | IgAccountDisabledError
                      | IgLoginRequiredError
                      | IgUserLoggedOutError
                      | ScreenDataError
                      | ScreenEnterConcurrentError
                      | ScreenEdgeInputError,
                      | MobileSession
                      | GraphqlJsonHttp
                      | MobileApplication
                      | MobileNavigation
                      | MobileUserFlows
                      | ScreenStack
                      | ScreenCatalog
                      | AndroidPostingMedia,
                  >;
                  switchMode: (
                      self: ScreenHandle,
                      state: PostingCameraState,
                  ) => ScreenEdgeBound<
                      ScreenEdgeShape<
                          PostingCameraScreenDefinition,
                          readonly ["story"],
                          "button",
                          AndroidScreens,
                      >,
                      (
                          mode: "story",
                      ) => Effect<
                          (
                              AssembledHandle<"PostingCamera", "screen", { readonly cameraSessionId: string; readonly origin: "feed" | "reels-tab"; readonly mode: "reel" | "story"; readonly entry: "reels-tab" | "gallery-picker" | "feed-button" | "camera-switch"; }, ... 6 more ..., AndroidScreens>
                          ),
                          | IgCheckpointError
                          | IgAccountSuspendedError
                          | IgAccountDisabledError
                          | IgLoginRequiredError
                          | IgUserLoggedOutError
                          | ScreenDataError
                          | ScreenEnterConcurrentError
                          | ScreenEdgeInputError,
                          | PlainJsonApiHttp
                          | Signature
                          | MobileSession
                          | MobileDevice
                          | GraphqlJsonHttp
                          | MobileApplication
                          | MobileNavigation
                          | MobileUserFlows
                          | ScreenStack
                          | ScreenCatalog
                          | AndroidPostingMedia,
                      >,
                  >;
              },
              Record<never, never>,
              ScreenHandle,
              "required",
              true,
              never,
              AndroidScreens,
          >,
      >

    • Parameters

      • mode: "reel"

      Returns Effect<
          AssembledHandle<
              "PostingCameraGallery",
              "screen",
              {
                  cameraSessionId: string;
                  mode: "reel"
                  | "story";
                  origin: "feed" | "reels-tab";
              },
              {
                  pickPhoto: (
                      self: ScreenHandle,
                      state: PostingCameraGalleryState,
                  ) => (
                      ...args: [photo: PostingPhotoInput, gallery?: PostingGalleryEntry],
                  ) => Effect<
                      PostingStoryPhotoEditorHandle,
                      | IgCheckpointError
                      | IgAccountSuspendedError
                      | IgAccountDisabledError
                      | IgLoginRequiredError
                      | IgUserLoggedOutError
                      | ScreenDataError
                      | ScreenEnterConcurrentError
                      | ScreenEdgeInputError
                      | PostingMediaFormatError,
                      | PlainJsonApiHttp
                      | Signature
                      | MobileSession
                      | MobileDevice
                      | GraphqlJsonHttp
                      | MobileApplication
                      | MobileNavigation
                      | ScreenStack
                      | ScreenCatalog
                      | AndroidPostingMedia,
                  >;
                  pickVideo: (
                      self: ScreenHandle,
                      state: PostingCameraGalleryState,
                  ) => (
                      ...args: [video: PostingVideoInput, gallery?: PostingGalleryEntry],
                  ) => Effect<
                      | AssembledHandle<
                          "PostingReelEditor",
                          "screen",
                          {
                              assetId: string;
                              creationSessionId: string;
                              draftId: string;
                              entry: "reel-mode"
                              | "post-mode";
                              media: {
                                  byteLength: number;
                                  durationMs: number;
                                  height: number;
                                  id: string;
                                  kind: "video";
                                  mimeType: "video/mp4";
                                  width: number;
                              };
                              origin: "feed"
                              | "reels-tab";
                          },
                          {
                              next: EditorNext;
                              openMusicBrowser: (
                                  self: ScreenHandle,
                                  state: {
                                      assetId: ...;
                                      creationSessionId: ...;
                                      draftId: ...;
                                      entry: ...;
                                      media: ...;
                                      origin: ...;
                                  },
                              ) => (...args: ...) => ...;
                          },
                          Record<never, never>,
                          ScreenHandle,
                          "required",
                          true,
                          never,
                          AndroidScreens,
                      >
                      | PostingStoryVideoEditorHandle,

                          | IgCheckpointError
                          | IgAccountSuspendedError
                          | IgAccountDisabledError
                          | IgLoginRequiredError
                          | IgUserLoggedOutError
                          | ScreenDataError
                          | ScreenEnterConcurrentError
                          | ScreenEdgeInputError
                          | PostingMediaFormatError,
                      | PlainJsonApiHttp
                      | Signature
                      | MobileSession
                      | MobileDevice
                      | GraphqlJsonHttp
                      | MobileApplication
                      | MobileNavigation
                      | MobileUserFlows
                      | ScreenStack
                      | AndroidQuickPromotionStash
                      | ScreenCatalog
                      | AndroidPostingMedia,
                  >;
              },
              Record<never, never>,
              ScreenHandle,
              "required",
              true,
              never,
              AndroidScreens,
          >,
      >

    • Not a call a caller makes: no creation mode is this string. It exists so the framework reads this argument → screen map as a map — a member whose last signature answers an Effect is flattened into that one surrogate; this signature takes a mode no real call names and answers a non-Effect, so ScreenBoundMember keeps the three overloads above intact.

      Parameters

      • mode: "__mode-map__"

      Returns { "each creation mode answers its own first screen": true }