Skip to content

@ecp.eth/sdk


@ecp.eth/sdk / indexer / IndexerAPIListGroupedNotificationsSchemaType

Type Alias: IndexerAPIListGroupedNotificationsSchemaType

type IndexerAPIListGroupedNotificationsSchemaType = {
  extra: {
     unseenCount: bigint;
  };
  notifications: {
     cursor: string;
     groupedBy: {
        notificationType: "reply" | "mention" | "reaction" | "quote";
        parent: {
           comment: {
              app: `0x${string}`;
              author: {
                 address: `0x${string}`;
                 ens?: {
                    avatarUrl: null | string;
                    name: string;
                 };
                 farcaster?: {
                    displayName?: string;
                    fid: number;
                    pfpUrl?: string;
                    username: string;
                 };
              };
              chainId: number;
              channelId: bigint;
              commentType: number;
              content: string;
              createdAt: Date;
              cursor: `0x${string}`;
              deletedAt: null | Date;
              hookMetadata: {
                 key: `0x${string}`;
                 value: `0x${string}`;
              }[];
              id: `0x${string}`;
              logIndex: null | number;
              metadata: {
                 key: `0x${string}`;
                 value: `0x${string}`;
              }[];
              moderationClassifierResult: Record<string, number>;
              moderationClassifierScore: number;
              moderationStatus: "approved" | "pending" | "rejected";
              moderationStatusChangedAt: Date;
              parentId: null | `0x${string}`;
              references: (
                 | {
                 address: `0x${string}`;
                 avatarUrl: null | string;
                 name: string;
                 position: {
                    end: number;
                    start: number;
                 };
                 type: "ens";
                 url: string;
               }
                 | {
                 address: `0x${string}`;
                 displayName: null | string;
                 fid: number;
                 fname: string;
                 pfpUrl: null | string;
                 position: {
                    end: number;
                    start: number;
                 };
                 type: "farcaster";
                 url: string;
                 username: string;
               }
                 | {
                 address: `0x${string}`;
                 chainId: null | number;
                 chains: {
                    caip: ...;
                    chainId: ...;
                 }[];
                 decimals: number;
                 logoURI: null | string;
                 name: string;
                 position: {
                    end: number;
                    start: number;
                 };
                 symbol: string;
                 type: "erc20";
               }
                 | {
                 description: null | string;
                 favicon: null | string;
                 mediaType: string;
                 opengraph:   | null
                    | {
                    description: ...;
                    image: ...;
                    title: ...;
                    url: ...;
                  };
                 position: {
                    end: number;
                    start: number;
                 };
                 title: string;
                 type: "webpage";
                 url: string;
               }
                 | {
                 mediaType: string;
                 position: {
                    end: number;
                    start: number;
                 };
                 type: "file";
                 url: string;
               }
                 | {
                 dimension?: {
                    height: ...;
                    width: ...;
                 };
                 mediaType: string;
                 position: {
                    end: number;
                    start: number;
                 };
                 type: "image";
                 url: string;
               }
                 | {
                 mediaType: string;
                 position: {
                    end: number;
                    start: number;
                 };
                 type: "video";
                 url: string;
                 videoTracks?: ...[];
               }
                 | {
                 chainId: number;
                 id: `0x${string}`;
                 position: {
                    end: number;
                    start: number;
                 };
                 type: "quoted_comment";
              })[];
              revision: number;
              targetUri: string;
              txHash: `0x${string}`;
              updatedAt: Date;
              zeroExSwap:   | null
                 | {
                 from: {
                    address: `0x${string}`;
                    amount: string;
                    symbol: string;
                 };
                 to: {
                    address: "" | `0x${(...)}`;
                    amount: string;
                    symbol: string;
                 };
               };
           };
           type: "comment";
        };
     };
     notifications: {
        extra: {
           unseenCount: bigint;
        };
        notifications: {
           cursor: string;
           notification:   | {
              app: `0x${string}`;
              author: {
                 address: `0x${string}`;
                 ens?: {
                    avatarUrl: ...;
                    name: ...;
                 };
                 farcaster?: {
                    displayName?: ...;
                    fid: ...;
                    pfpUrl?: ...;
                    username: ...;
                 };
              };
              comment: {
                 app: `0x${string}`;
                 author: {
                    address: `0x${(...)}`;
                    ens?: ... | ...;
                    farcaster?: ... | ...;
                 };
                 chainId: number;
                 channelId: bigint;
                 commentType: number;
                 content: string;
                 createdAt: Date;
                 cursor: `0x${string}`;
                 deletedAt: null | Date;
                 hookMetadata: {
                    key: ...;
                    value: ...;
                 }[];
                 id: `0x${string}`;
                 logIndex: null | number;
                 metadata: {
                    key: ...;
                    value: ...;
                 }[];
                 moderationClassifierResult: Record<string, number>;
                 moderationClassifierScore: number;
                 moderationStatus: "approved" | "pending" | "rejected";
                 moderationStatusChangedAt: Date;
                 parentId: null | `0x${(...)}`;
                 references: (... | ... | ... | ... | ... | ... | ... | ...)[];
                 revision: number;
                 targetUri: string;
                 txHash: `0x${string}`;
                 updatedAt: Date;
                 zeroExSwap:   | null
                    | {
                    from: ...;
                    to: ...;
                  };
              };
              createdAt: Date;
              id: bigint;
              replyingTo: {
                 app: `0x${string}`;
                 author: {
                    address: `0x${(...)}`;
                    ens?: ... | ...;
                    farcaster?: ... | ...;
                 };
                 chainId: number;
                 channelId: bigint;
                 commentType: number;
                 content: string;
                 createdAt: Date;
                 cursor: `0x${string}`;
                 deletedAt: null | Date;
                 hookMetadata: {
                    key: ...;
                    value: ...;
                 }[];
                 id: `0x${string}`;
                 logIndex: null | number;
                 metadata: {
                    key: ...;
                    value: ...;
                 }[];
                 moderationClassifierResult: Record<string, number>;
                 moderationClassifierScore: number;
                 moderationStatus: "approved" | "pending" | "rejected";
                 moderationStatusChangedAt: Date;
                 parentId: null | `0x${(...)}`;
                 references: (... | ... | ... | ... | ... | ... | ... | ...)[];
                 revision: number;
                 targetUri: string;
                 txHash: `0x${string}`;
                 updatedAt: Date;
                 zeroExSwap:   | null
                    | {
                    from: ...;
                    to: ...;
                  };
              };
              seen: boolean;
              seenAt: null | Date;
              type: "reply";
            }
              | {
              app: `0x${string}`;
              author: {
                 address: `0x${string}`;
                 ens?: {
                    avatarUrl: ...;
                    name: ...;
                 };
                 farcaster?: {
                    displayName?: ...;
                    fid: ...;
                    pfpUrl?: ...;
                    username: ...;
                 };
              };
              comment: {
                 app: `0x${string}`;
                 author: {
                    address: `0x${(...)}`;
                    ens?: ... | ...;
                    farcaster?: ... | ...;
                 };
                 chainId: number;
                 channelId: bigint;
                 commentType: number;
                 content: string;
                 createdAt: Date;
                 cursor: `0x${string}`;
                 deletedAt: null | Date;
                 hookMetadata: {
                    key: ...;
                    value: ...;
                 }[];
                 id: `0x${string}`;
                 logIndex: null | number;
                 metadata: {
                    key: ...;
                    value: ...;
                 }[];
                 moderationClassifierResult: Record<string, number>;
                 moderationClassifierScore: number;
                 moderationStatus: "approved" | "pending" | "rejected";
                 moderationStatusChangedAt: Date;
                 parentId: null | `0x${(...)}`;
                 references: (... | ... | ... | ... | ... | ... | ... | ...)[];
                 revision: number;
                 targetUri: string;
                 txHash: `0x${string}`;
                 updatedAt: Date;
                 zeroExSwap:   | null
                    | {
                    from: ...;
                    to: ...;
                  };
              };
              createdAt: Date;
              id: bigint;
              mentionedUser: {
                 address: `0x${string}`;
                 ens?: {
                    avatarUrl: ...;
                    name: ...;
                 };
                 farcaster?: {
                    displayName?: ...;
                    fid: ...;
                    pfpUrl?: ...;
                    username: ...;
                 };
              };
              seen: boolean;
              seenAt: null | Date;
              type: "mention";
            }
              | {
              app: `0x${string}`;
              author: {
                 address: `0x${string}`;
                 ens?: {
                    avatarUrl: ...;
                    name: ...;
                 };
                 farcaster?: {
                    displayName?: ...;
                    fid: ...;
                    pfpUrl?: ...;
                    username: ...;
                 };
              };
              comment: {
                 app: `0x${string}`;
                 author: {
                    address: `0x${(...)}`;
                    ens?: ... | ...;
                    farcaster?: ... | ...;
                 };
                 chainId: number;
                 channelId: bigint;
                 commentType: number;
                 content: string;
                 createdAt: Date;
                 cursor: `0x${string}`;
                 deletedAt: null | Date;
                 hookMetadata: {
                    key: ...;
                    value: ...;
                 }[];
                 id: `0x${string}`;
                 logIndex: null | number;
                 metadata: {
                    key: ...;
                    value: ...;
                 }[];
                 moderationClassifierResult: Record<string, number>;
                 moderationClassifierScore: number;
                 moderationStatus: "approved" | "pending" | "rejected";
                 moderationStatusChangedAt: Date;
                 parentId: null | `0x${(...)}`;
                 references: (... | ... | ... | ... | ... | ... | ... | ...)[];
                 revision: number;
                 targetUri: string;
                 txHash: `0x${string}`;
                 updatedAt: Date;
                 zeroExSwap:   | null
                    | {
                    from: ...;
                    to: ...;
                  };
              };
              createdAt: Date;
              id: bigint;
              reactingTo: {
                 app: `0x${string}`;
                 author: {
                    address: `0x${(...)}`;
                    ens?: ... | ...;
                    farcaster?: ... | ...;
                 };
                 chainId: number;
                 channelId: bigint;
                 commentType: number;
                 content: string;
                 createdAt: Date;
                 cursor: `0x${string}`;
                 deletedAt: null | Date;
                 hookMetadata: {
                    key: ...;
                    value: ...;
                 }[];
                 id: `0x${string}`;
                 logIndex: null | number;
                 metadata: {
                    key: ...;
                    value: ...;
                 }[];
                 moderationClassifierResult: Record<string, number>;
                 moderationClassifierScore: number;
                 moderationStatus: "approved" | "pending" | "rejected";
                 moderationStatusChangedAt: Date;
                 parentId: null | `0x${(...)}`;
                 references: (... | ... | ... | ... | ... | ... | ... | ...)[];
                 revision: number;
                 targetUri: string;
                 txHash: `0x${string}`;
                 updatedAt: Date;
                 zeroExSwap:   | null
                    | {
                    from: ...;
                    to: ...;
                  };
              };
              seen: boolean;
              seenAt: null | Date;
              type: "reaction";
            }
              | {
              app: `0x${string}`;
              author: {
                 address: `0x${string}`;
                 ens?: {
                    avatarUrl: ...;
                    name: ...;
                 };
                 farcaster?: {
                    displayName?: ...;
                    fid: ...;
                    pfpUrl?: ...;
                    username: ...;
                 };
              };
              comment: {
                 app: `0x${string}`;
                 author: {
                    address: `0x${(...)}`;
                    ens?: ... | ...;
                    farcaster?: ... | ...;
                 };
                 chainId: number;
                 channelId: bigint;
                 commentType: number;
                 content: string;
                 createdAt: Date;
                 cursor: `0x${string}`;
                 deletedAt: null | Date;
                 hookMetadata: {
                    key: ...;
                    value: ...;
                 }[];
                 id: `0x${string}`;
                 logIndex: null | number;
                 metadata: {
                    key: ...;
                    value: ...;
                 }[];
                 moderationClassifierResult: Record<string, number>;
                 moderationClassifierScore: number;
                 moderationStatus: "approved" | "pending" | "rejected";
                 moderationStatusChangedAt: Date;
                 parentId: null | `0x${(...)}`;
                 references: (... | ... | ... | ... | ... | ... | ... | ...)[];
                 revision: number;
                 targetUri: string;
                 txHash: `0x${string}`;
                 updatedAt: Date;
                 zeroExSwap:   | null
                    | {
                    from: ...;
                    to: ...;
                  };
              };
              createdAt: Date;
              id: bigint;
              quotedComment: {
                 app: `0x${string}`;
                 author: {
                    address: `0x${(...)}`;
                    ens?: ... | ...;
                    farcaster?: ... | ...;
                 };
                 chainId: number;
                 channelId: bigint;
                 commentType: number;
                 content: string;
                 createdAt: Date;
                 cursor: `0x${string}`;
                 deletedAt: null | Date;
                 hookMetadata: {
                    key: ...;
                    value: ...;
                 }[];
                 id: `0x${string}`;
                 logIndex: null | number;
                 metadata: {
                    key: ...;
                    value: ...;
                 }[];
                 moderationClassifierResult: Record<string, number>;
                 moderationClassifierScore: number;
                 moderationStatus: "approved" | "pending" | "rejected";
                 moderationStatusChangedAt: Date;
                 parentId: null | `0x${(...)}`;
                 references: (... | ... | ... | ... | ... | ... | ... | ...)[];
                 revision: number;
                 targetUri: string;
                 txHash: `0x${string}`;
                 updatedAt: Date;
                 zeroExSwap:   | null
                    | {
                    from: ...;
                    to: ...;
                  };
              };
              seen: boolean;
              seenAt: null | Date;
              type: "quote";
            };
        }[];
        pageInfo: {
           endCursor?: string;
           hasNextPage: boolean;
           hasPreviousPage: boolean;
           startCursor?: string;
        };
     };
  }[];
  pageInfo: {
     endCursor?: string;
     hasNextPage: boolean;
     hasPreviousPage: boolean;
     startCursor?: string;
  };
};

Defined in: packages/sdk/src/indexer/schemas.ts:845

The list grouped notifications schema returned by fetchGroupedNotifications()

Type declaration

extra

extra: {
  unseenCount: bigint;
};

extra.unseenCount

unseenCount: bigint;

notifications

notifications: {
  cursor: string;
  groupedBy: {
     notificationType: "reply" | "mention" | "reaction" | "quote";
     parent: {
        comment: {
           app: `0x${string}`;
           author: {
              address: `0x${string}`;
              ens?: {
                 avatarUrl: null | string;
                 name: string;
              };
              farcaster?: {
                 displayName?: string;
                 fid: number;
                 pfpUrl?: string;
                 username: string;
              };
           };
           chainId: number;
           channelId: bigint;
           commentType: number;
           content: string;
           createdAt: Date;
           cursor: `0x${string}`;
           deletedAt: null | Date;
           hookMetadata: {
              key: `0x${string}`;
              value: `0x${string}`;
           }[];
           id: `0x${string}`;
           logIndex: null | number;
           metadata: {
              key: `0x${string}`;
              value: `0x${string}`;
           }[];
           moderationClassifierResult: Record<string, number>;
           moderationClassifierScore: number;
           moderationStatus: "approved" | "pending" | "rejected";
           moderationStatusChangedAt: Date;
           parentId: null | `0x${string}`;
           references: (
              | {
              address: `0x${string}`;
              avatarUrl: null | string;
              name: string;
              position: {
                 end: number;
                 start: number;
              };
              type: "ens";
              url: string;
            }
              | {
              address: `0x${string}`;
              displayName: null | string;
              fid: number;
              fname: string;
              pfpUrl: null | string;
              position: {
                 end: number;
                 start: number;
              };
              type: "farcaster";
              url: string;
              username: string;
            }
              | {
              address: `0x${string}`;
              chainId: null | number;
              chains: {
                 caip: ...;
                 chainId: ...;
              }[];
              decimals: number;
              logoURI: null | string;
              name: string;
              position: {
                 end: number;
                 start: number;
              };
              symbol: string;
              type: "erc20";
            }
              | {
              description: null | string;
              favicon: null | string;
              mediaType: string;
              opengraph:   | null
                 | {
                 description: ...;
                 image: ...;
                 title: ...;
                 url: ...;
               };
              position: {
                 end: number;
                 start: number;
              };
              title: string;
              type: "webpage";
              url: string;
            }
              | {
              mediaType: string;
              position: {
                 end: number;
                 start: number;
              };
              type: "file";
              url: string;
            }
              | {
              dimension?: {
                 height: ...;
                 width: ...;
              };
              mediaType: string;
              position: {
                 end: number;
                 start: number;
              };
              type: "image";
              url: string;
            }
              | {
              mediaType: string;
              position: {
                 end: number;
                 start: number;
              };
              type: "video";
              url: string;
              videoTracks?: ...[];
            }
              | {
              chainId: number;
              id: `0x${string}`;
              position: {
                 end: number;
                 start: number;
              };
              type: "quoted_comment";
           })[];
           revision: number;
           targetUri: string;
           txHash: `0x${string}`;
           updatedAt: Date;
           zeroExSwap:   | null
              | {
              from: {
                 address: `0x${string}`;
                 amount: string;
                 symbol: string;
              };
              to: {
                 address: "" | `0x${(...)}`;
                 amount: string;
                 symbol: string;
              };
            };
        };
        type: "comment";
     };
  };
  notifications: {
     extra: {
        unseenCount: bigint;
     };
     notifications: {
        cursor: string;
        notification:   | {
           app: `0x${string}`;
           author: {
              address: `0x${string}`;
              ens?: {
                 avatarUrl: ...;
                 name: ...;
              };
              farcaster?: {
                 displayName?: ...;
                 fid: ...;
                 pfpUrl?: ...;
                 username: ...;
              };
           };
           comment: {
              app: `0x${string}`;
              author: {
                 address: `0x${(...)}`;
                 ens?: ... | ...;
                 farcaster?: ... | ...;
              };
              chainId: number;
              channelId: bigint;
              commentType: number;
              content: string;
              createdAt: Date;
              cursor: `0x${string}`;
              deletedAt: null | Date;
              hookMetadata: {
                 key: ...;
                 value: ...;
              }[];
              id: `0x${string}`;
              logIndex: null | number;
              metadata: {
                 key: ...;
                 value: ...;
              }[];
              moderationClassifierResult: Record<string, number>;
              moderationClassifierScore: number;
              moderationStatus: "approved" | "pending" | "rejected";
              moderationStatusChangedAt: Date;
              parentId: null | `0x${(...)}`;
              references: (... | ... | ... | ... | ... | ... | ... | ...)[];
              revision: number;
              targetUri: string;
              txHash: `0x${string}`;
              updatedAt: Date;
              zeroExSwap:   | null
                 | {
                 from: ...;
                 to: ...;
               };
           };
           createdAt: Date;
           id: bigint;
           replyingTo: {
              app: `0x${string}`;
              author: {
                 address: `0x${(...)}`;
                 ens?: ... | ...;
                 farcaster?: ... | ...;
              };
              chainId: number;
              channelId: bigint;
              commentType: number;
              content: string;
              createdAt: Date;
              cursor: `0x${string}`;
              deletedAt: null | Date;
              hookMetadata: {
                 key: ...;
                 value: ...;
              }[];
              id: `0x${string}`;
              logIndex: null | number;
              metadata: {
                 key: ...;
                 value: ...;
              }[];
              moderationClassifierResult: Record<string, number>;
              moderationClassifierScore: number;
              moderationStatus: "approved" | "pending" | "rejected";
              moderationStatusChangedAt: Date;
              parentId: null | `0x${(...)}`;
              references: (... | ... | ... | ... | ... | ... | ... | ...)[];
              revision: number;
              targetUri: string;
              txHash: `0x${string}`;
              updatedAt: Date;
              zeroExSwap:   | null
                 | {
                 from: ...;
                 to: ...;
               };
           };
           seen: boolean;
           seenAt: null | Date;
           type: "reply";
         }
           | {
           app: `0x${string}`;
           author: {
              address: `0x${string}`;
              ens?: {
                 avatarUrl: ...;
                 name: ...;
              };
              farcaster?: {
                 displayName?: ...;
                 fid: ...;
                 pfpUrl?: ...;
                 username: ...;
              };
           };
           comment: {
              app: `0x${string}`;
              author: {
                 address: `0x${(...)}`;
                 ens?: ... | ...;
                 farcaster?: ... | ...;
              };
              chainId: number;
              channelId: bigint;
              commentType: number;
              content: string;
              createdAt: Date;
              cursor: `0x${string}`;
              deletedAt: null | Date;
              hookMetadata: {
                 key: ...;
                 value: ...;
              }[];
              id: `0x${string}`;
              logIndex: null | number;
              metadata: {
                 key: ...;
                 value: ...;
              }[];
              moderationClassifierResult: Record<string, number>;
              moderationClassifierScore: number;
              moderationStatus: "approved" | "pending" | "rejected";
              moderationStatusChangedAt: Date;
              parentId: null | `0x${(...)}`;
              references: (... | ... | ... | ... | ... | ... | ... | ...)[];
              revision: number;
              targetUri: string;
              txHash: `0x${string}`;
              updatedAt: Date;
              zeroExSwap:   | null
                 | {
                 from: ...;
                 to: ...;
               };
           };
           createdAt: Date;
           id: bigint;
           mentionedUser: {
              address: `0x${string}`;
              ens?: {
                 avatarUrl: ...;
                 name: ...;
              };
              farcaster?: {
                 displayName?: ...;
                 fid: ...;
                 pfpUrl?: ...;
                 username: ...;
              };
           };
           seen: boolean;
           seenAt: null | Date;
           type: "mention";
         }
           | {
           app: `0x${string}`;
           author: {
              address: `0x${string}`;
              ens?: {
                 avatarUrl: ...;
                 name: ...;
              };
              farcaster?: {
                 displayName?: ...;
                 fid: ...;
                 pfpUrl?: ...;
                 username: ...;
              };
           };
           comment: {
              app: `0x${string}`;
              author: {
                 address: `0x${(...)}`;
                 ens?: ... | ...;
                 farcaster?: ... | ...;
              };
              chainId: number;
              channelId: bigint;
              commentType: number;
              content: string;
              createdAt: Date;
              cursor: `0x${string}`;
              deletedAt: null | Date;
              hookMetadata: {
                 key: ...;
                 value: ...;
              }[];
              id: `0x${string}`;
              logIndex: null | number;
              metadata: {
                 key: ...;
                 value: ...;
              }[];
              moderationClassifierResult: Record<string, number>;
              moderationClassifierScore: number;
              moderationStatus: "approved" | "pending" | "rejected";
              moderationStatusChangedAt: Date;
              parentId: null | `0x${(...)}`;
              references: (... | ... | ... | ... | ... | ... | ... | ...)[];
              revision: number;
              targetUri: string;
              txHash: `0x${string}`;
              updatedAt: Date;
              zeroExSwap:   | null
                 | {
                 from: ...;
                 to: ...;
               };
           };
           createdAt: Date;
           id: bigint;
           reactingTo: {
              app: `0x${string}`;
              author: {
                 address: `0x${(...)}`;
                 ens?: ... | ...;
                 farcaster?: ... | ...;
              };
              chainId: number;
              channelId: bigint;
              commentType: number;
              content: string;
              createdAt: Date;
              cursor: `0x${string}`;
              deletedAt: null | Date;
              hookMetadata: {
                 key: ...;
                 value: ...;
              }[];
              id: `0x${string}`;
              logIndex: null | number;
              metadata: {
                 key: ...;
                 value: ...;
              }[];
              moderationClassifierResult: Record<string, number>;
              moderationClassifierScore: number;
              moderationStatus: "approved" | "pending" | "rejected";
              moderationStatusChangedAt: Date;
              parentId: null | `0x${(...)}`;
              references: (... | ... | ... | ... | ... | ... | ... | ...)[];
              revision: number;
              targetUri: string;
              txHash: `0x${string}`;
              updatedAt: Date;
              zeroExSwap:   | null
                 | {
                 from: ...;
                 to: ...;
               };
           };
           seen: boolean;
           seenAt: null | Date;
           type: "reaction";
         }
           | {
           app: `0x${string}`;
           author: {
              address: `0x${string}`;
              ens?: {
                 avatarUrl: ...;
                 name: ...;
              };
              farcaster?: {
                 displayName?: ...;
                 fid: ...;
                 pfpUrl?: ...;
                 username: ...;
              };
           };
           comment: {
              app: `0x${string}`;
              author: {
                 address: `0x${(...)}`;
                 ens?: ... | ...;
                 farcaster?: ... | ...;
              };
              chainId: number;
              channelId: bigint;
              commentType: number;
              content: string;
              createdAt: Date;
              cursor: `0x${string}`;
              deletedAt: null | Date;
              hookMetadata: {
                 key: ...;
                 value: ...;
              }[];
              id: `0x${string}`;
              logIndex: null | number;
              metadata: {
                 key: ...;
                 value: ...;
              }[];
              moderationClassifierResult: Record<string, number>;
              moderationClassifierScore: number;
              moderationStatus: "approved" | "pending" | "rejected";
              moderationStatusChangedAt: Date;
              parentId: null | `0x${(...)}`;
              references: (... | ... | ... | ... | ... | ... | ... | ...)[];
              revision: number;
              targetUri: string;
              txHash: `0x${string}`;
              updatedAt: Date;
              zeroExSwap:   | null
                 | {
                 from: ...;
                 to: ...;
               };
           };
           createdAt: Date;
           id: bigint;
           quotedComment: {
              app: `0x${string}`;
              author: {
                 address: `0x${(...)}`;
                 ens?: ... | ...;
                 farcaster?: ... | ...;
              };
              chainId: number;
              channelId: bigint;
              commentType: number;
              content: string;
              createdAt: Date;
              cursor: `0x${string}`;
              deletedAt: null | Date;
              hookMetadata: {
                 key: ...;
                 value: ...;
              }[];
              id: `0x${string}`;
              logIndex: null | number;
              metadata: {
                 key: ...;
                 value: ...;
              }[];
              moderationClassifierResult: Record<string, number>;
              moderationClassifierScore: number;
              moderationStatus: "approved" | "pending" | "rejected";
              moderationStatusChangedAt: Date;
              parentId: null | `0x${(...)}`;
              references: (... | ... | ... | ... | ... | ... | ... | ...)[];
              revision: number;
              targetUri: string;
              txHash: `0x${string}`;
              updatedAt: Date;
              zeroExSwap:   | null
                 | {
                 from: ...;
                 to: ...;
               };
           };
           seen: boolean;
           seenAt: null | Date;
           type: "quote";
         };
     }[];
     pageInfo: {
        endCursor?: string;
        hasNextPage: boolean;
        hasPreviousPage: boolean;
        startCursor?: string;
     };
  };
}[];

pageInfo

pageInfo: {
  endCursor?: string;
  hasNextPage: boolean;
  hasPreviousPage: boolean;
  startCursor?: string;
};

pageInfo.endCursor?

optional endCursor: string;

pageInfo.hasNextPage

hasNextPage: boolean;

pageInfo.hasPreviousPage

hasPreviousPage: boolean;

pageInfo.startCursor?

optional startCursor: string;