import { J as Json, S as SdkModule } from '../../module-Bq-w9Ws5.cjs'; import 'graphql-request'; type ConversationType = 'DIRECT' | 'GROUP' | 'CHANNEL' | 'BOT' | 'AI'; type ConversationState = 'ACTIVE' | 'ARCHIVED' | 'DELETED' | 'MUTED'; type ConversationVisibility = 'PRIVATE' | 'INTERNAL' | 'PUBLIC'; interface Conversation { id: string; title?: string | null; type: ConversationType; description?: string | null; avatar?: string | null; settings?: Json; state: ConversationState; visibility: ConversationVisibility; isGroup: boolean; memberCount: number; unreadCount: number; mentionCount: number; workspaceId: string; createdBy: string; createdAt: string; updatedAt: string; deletedAt?: string | null; } interface ConversationConnection { edges: Array<{ node: Conversation; cursor?: string | null; }>; pageInfo: { hasNextPage: boolean; hasPreviousPage?: boolean | null; startCursor?: string | null; endCursor?: string | null; }; totalCount?: number | null; } interface ConversationFilterInput { hasMentions?: boolean; type?: ConversationType; state?: ConversationState; visibility?: ConversationVisibility; search?: string; workspaceId?: string; } type ConversationSort = 'CREATED_AT' | 'UPDATED_AT' | 'LAST_MESSAGE_AT'; interface CreateConversationInput { title?: string; type: ConversationType; description?: string; participantIds?: string[]; visibility?: ConversationVisibility; metadata?: Json; } interface UpdateConversationInput { id: string; title?: string; description?: string; avatar?: string; settings?: Json; state?: ConversationState; visibility?: ConversationVisibility; } type MessageType = 'TEXT' | 'IMAGE' | 'FILE' | 'SYSTEM' | 'CALL' | 'POLL' | 'EVENT' | 'COMMAND' | 'NOTIFICATION'; interface Message { id: string; conversationId: string; authorId: string; authorType: string; content: Json; type: MessageType; metadata?: Json; status: string; isEdited: boolean; isPinned: boolean; isHidden: boolean; isAnonymous: boolean; readCount: number; replyCount: number; threadLevel: number; threadRootId?: string | null; parentMessageId?: string | null; createdAt: string; updatedAt: string; editedAt?: string | null; pinnedAt?: string | null; } interface MessageConnection { edges: Array<{ node: Message; cursor?: string | null; }>; pageInfo: { hasNextPage: boolean; hasPreviousPage?: boolean | null; startCursor?: string | null; endCursor?: string | null; }; totalCount?: number | null; } interface MessageFilter { type?: MessageType; authorId?: string; pinned?: boolean; hasAttachments?: boolean; search?: string; } interface SendMessageInput { conversationId: string; content: Json; type?: MessageType; metadata?: Json; parentMessageId?: string; } interface ConversationSettings { conversationId: string; notificationsEnabled?: boolean | null; muted?: boolean | null; pinned?: boolean | null; metadata?: Json; } interface UpdateConversationSettingsInput { conversationId: string; notificationsEnabled?: boolean; muted?: boolean; pinned?: boolean; metadata?: Json; } interface EditMessageInput { id: string; content: Json; reason?: string; } interface SaveDraftInput { conversationId: string; content: Json; parentMessageId?: string; } interface DraftMessage { id: string; conversationId: string; userId: string; content: Json; parentMessageId?: string | null; createdAt: string; updatedAt: string; } interface Reaction { id: string; messageId: string; userId: string; emoji: string; createdAt: string; } type PresenceStatus = 'ONLINE' | 'OFFLINE' | 'AWAY' | 'DO_NOT_DISTURB'; interface Presence { userId: string; status: PresenceStatus; customStatus?: string | null; lastSeenAt?: string | null; } interface TypingIndicator { conversationId: string; userId: string; startedAt: string; } type ParticipantRole = 'ADMIN' | 'MODERATOR' | 'MEMBER' | 'GUEST'; interface ConversationMembership { id: string; conversationId: string; userId: string; customTitle?: string | null; customAvatar?: string | null; invitedBy?: string | null; canAddMembers: boolean; canRemoveMembers: boolean; canSendMessages: boolean; createdAt: string; } interface AddParticipantInput { conversationId: string; userId: string; role?: ParticipantRole; } interface RemoveParticipantInput { conversationId: string; userId: string; reason?: string; } interface UpdateParticipantRoleInput { conversationId: string; userId: string; role: ParticipantRole; } interface InviteLink { code: string; url: string; createdBy: string; currentUses: number; maxUses?: number | null; expiresAt?: string | null; createdAt: string; } interface InviteLinkInfo { valid: boolean; usesRemaining?: number | null; expiresAt?: string | null; conversation?: Pick | null; } interface CreateInviteLinkInput { conversationId: string; maxUses?: number; expiresAt?: string; } type NotificationLevel = 'ALL' | 'MENTIONS' | 'MUTED' | 'NONE'; interface UpdateNotificationSettingsInput { conversationId: string; notificationLevel: NotificationLevel; } interface Poll { id: string; question: string; totalVotes: number; isClosed: boolean; options: Array<{ id: string; }>; } interface ConversationMessagesApi { list(conversationId: string, opts?: { first?: number; after?: string; before?: string; filter?: MessageFilter; }): Promise; send(input: SendMessageInput): Promise; get(id: string): Promise; edit(input: EditMessageInput): Promise; delete(id: string, hard?: boolean): Promise; forward(messageId: string, targetConversationId: string): Promise; pin(messageId: string): Promise; unpin(messageId: string): Promise; hide(messageId: string, reason: string): Promise; unhide(messageId: string): Promise; search(query: string, opts?: { conversationId?: string; filter?: MessageFilter; first?: number; after?: string; }): Promise; unread(opts?: { first?: number; after?: string; }): Promise; report(messageId: string, reason: string): Promise<{ success: boolean; reportId: string; }>; } interface ConversationDraftsApi { get(conversationId: string): Promise; save(input: SaveDraftInput): Promise; delete(conversationId: string): Promise; } interface ConversationReactionsApi { add(messageId: string, emoji: string): Promise; remove(messageId: string, emoji: string): Promise; } interface ConversationThreadsApi { get(messageId: string, opts?: { first?: number; after?: string; }): Promise; } interface ConversationMentionsApi { list(opts?: { first?: number; after?: string; unreadOnly?: boolean; }): Promise; } interface ConversationPresenceApi { get(userIds: string[]): Promise; update(status: PresenceStatus, customStatus?: string): Promise; } interface ConversationTypingApi { list(conversationId: string): Promise; start(conversationId: string): Promise; stop(conversationId: string): Promise; } interface ConversationParticipantsApi { add(input: AddParticipantInput): Promise; remove(input: RemoveParticipantInput): Promise; updateRole(input: UpdateParticipantRoleInput): Promise; } interface ConversationInvitesApi { create(input: CreateInviteLinkInput): Promise; join(code: string): Promise; validate(code: string): Promise; } interface ConversationPollsApi { vote(pollId: string, optionIds: string[]): Promise; } interface ConversationNotificationsApi { update(input: UpdateNotificationSettingsInput): Promise; } interface ConversationSettingsApi { get(conversationId: string): Promise; set(input: UpdateConversationSettingsInput): Promise; } interface ConversationsListOptions { filter?: ConversationFilterInput; first?: number; after?: string; sort?: ConversationSort; } interface ConversationsApi { list(opts?: ConversationsListOptions): Promise; get(id: string): Promise; create(input: CreateConversationInput): Promise; update(input: UpdateConversationInput): Promise; delete(id: string): Promise; messages: ConversationMessagesApi; settings: ConversationSettingsApi; drafts: ConversationDraftsApi; reactions: ConversationReactionsApi; threads: ConversationThreadsApi; mentions: ConversationMentionsApi; presence: ConversationPresenceApi; typing: ConversationTypingApi; participants: ConversationParticipantsApi; invites: ConversationInvitesApi; polls: ConversationPollsApi; notifications: ConversationNotificationsApi; getOrCreateDirect(userId: string): Promise; search(query: string, opts?: { filter?: ConversationFilterInput; first?: number; after?: string; }): Promise; archive(id: string): Promise; unarchive(id: string): Promise; mute(conversationId: string, until?: string): Promise; unmute(conversationId: string): Promise; pin(conversationId: string): Promise; unpin(conversationId: string): Promise; markAsRead(conversationId: string, messageId?: string): Promise; leave(conversationId: string): Promise; } declare const conversationsModule: SdkModule; export { type Conversation, type ConversationConnection, type ConversationFilterInput, type ConversationMessagesApi, type ConversationSettings, type ConversationSettingsApi, type ConversationType, type ConversationsApi, type CreateConversationInput, type Message, type MessageConnection, type MessageType, type SendMessageInput, type UpdateConversationInput, type UpdateConversationSettingsInput, conversationsModule as default };