import type { ApiClient } from "@promobase/sdk-runtime"; import { Cursor } from "@promobase/sdk-runtime"; import { metaPagination } from "../../pagination.ts"; import type { GroupFields } from "./group.ts"; export interface UnifiedThreadFields { can_reply: boolean; folder: string; former_participants: Record; id: string; is_owner: boolean; is_subscribed: boolean; link: string; linked_group: GroupFields; message_count: number; name: string; participants: Record; scoped_thread_key: string; senders: Record; snippet: string; unread_count: number; updated_time: string; wallpaper: string; } export interface UnifiedThreadListMessagesParams { source?: string; [key: string]: unknown; } export function unifiedThreadNode(client: ApiClient, id: string) { return { __path: id, __brand: undefined as unknown as UnifiedThreadFields, get: (opts: { fields: F; params?: Record }) => client.get>(`${id}`, opts), messages: )[]>(opts: { fields: F; params?: UnifiedThreadListMessagesParams }) => new Cursor, F[number]>>(client, `${id}/messages`, opts as { fields: readonly string[]; params?: Record }, metaPagination()), }; }