import type { Transport, PageResult } from '@23blocks/contracts'; import type { Comment, CreateCommentRequest, UpdateCommentRequest, ListCommentsParams } from '../types/comment.js'; export interface CommentsService { /** * List comments for a post * @param postUniqueId - Unique ID of the post to list comments for * @param params - Optional filtering and pagination parameters * @returns Paginated list of Comment records with pagination metadata */ list(postUniqueId: string, params?: ListCommentsParams): Promise>; /** * Get a specific comment * @param postUniqueId - Unique ID of the parent post * @param uniqueId - Unique ID of the comment to retrieve * @returns The matching Comment record */ get(postUniqueId: string, uniqueId: string): Promise; /** * Create a new comment on a post * @param postUniqueId - Unique ID of the post to comment on * @param data - Comment creation payload * @returns The newly created Comment record */ create(postUniqueId: string, data: CreateCommentRequest): Promise; /** * Update a comment * @param postUniqueId - Unique ID of the parent post * @param uniqueId - Unique ID of the comment to update * @param data - Fields to update on the comment * @returns The updated Comment record */ update(postUniqueId: string, uniqueId: string, data: UpdateCommentRequest): Promise; /** * Delete a comment * @param postUniqueId - Unique ID of the parent post * @param uniqueId - Unique ID of the comment to delete * @returns void on successful deletion */ delete(postUniqueId: string, uniqueId: string): Promise; /** * Reply to a comment (creates a nested comment) * @param postUniqueId - Unique ID of the parent post * @param parentCommentUniqueId - Unique ID of the comment being replied to * @param data - Reply content (parentId is set automatically from parentCommentUniqueId) * @returns The newly created reply Comment record * @note The parentId field is omitted from the request since it is derived from parentCommentUniqueId */ reply(postUniqueId: string, parentCommentUniqueId: string, data: Omit): Promise; /** * Like a comment * @param postUniqueId - Unique ID of the parent post * @param uniqueId - Unique ID of the comment to like * @returns The updated Comment record with engagement state */ like(postUniqueId: string, uniqueId: string): Promise; /** * Dislike a comment * @param postUniqueId - Unique ID of the parent post * @param uniqueId - Unique ID of the comment to dislike * @returns The updated Comment record with engagement state */ dislike(postUniqueId: string, uniqueId: string): Promise; /** * Save a comment to the user's saved items * @param postUniqueId - Unique ID of the parent post * @param uniqueId - Unique ID of the comment to save * @returns The updated Comment record with engagement state */ save(postUniqueId: string, uniqueId: string): Promise; /** * Remove a comment from the user's saved items * @param postUniqueId - Unique ID of the parent post * @param uniqueId - Unique ID of the comment to unsave * @returns The updated Comment record with engagement state */ unsave(postUniqueId: string, uniqueId: string): Promise; /** * Follow a comment to receive notifications on updates * @param postUniqueId - Unique ID of the parent post * @param uniqueId - Unique ID of the comment to follow * @returns The updated Comment record with engagement state */ follow(postUniqueId: string, uniqueId: string): Promise; /** * Unfollow a comment to stop receiving notifications * @param postUniqueId - Unique ID of the parent post * @param uniqueId - Unique ID of the comment to unfollow * @returns The updated Comment record with engagement state */ unfollow(postUniqueId: string, uniqueId: string): Promise; } export declare function createCommentsService(transport: Transport, _config: { apiKey: string; }): CommentsService; //# sourceMappingURL=comments.service.d.ts.map