import { Params } from '@strapi/database/dist/entity-manager/types'; import { UID } from '@strapi/strapi'; import { Id, PathValue, StrapiContext } from '../@types'; import { CommentsPluginConfig } from '../config'; import { client as clientValidator } from '../validators/api'; import { Comment, CommentRelated, CommentWithRelated } from '../validators/repositories'; import { Pagination } from '../validators/repositories/utils'; type ParsedRelation = { uid: UID.ContentType; relatedId: string; }; declare const commonService: ({ strapi }: StrapiContext) => { buildPopulateForRelated(uid: UID.ContentType): Record; getConfig(prop?: T, defaultValue?: PathValue, useLocal?: boolean): Promise>; parseRelationString(relation: `${string}::${string}.${string}:${string}` | string): ParsedRelation; isValidUserContext(user?: T_1): boolean; sanitizeCommentEntity(entity: Comment | CommentWithRelated, blockedAuthors: string[], omitProps?: Array, populate?: any): Comment; findAllFlat({ fields, limit, skip, sort, populate, omit: baseOmit, isAdmin, pagination, filters, locale, }: clientValidator.FindAllFlatSchema, relatedEntity?: any): Promise<{ data: Array; pagination?: Pagination; }>; getCommentsChildren({ filters, populate, sort, fields, isAdmin, omit, locale, limit, }: clientValidator.FindAllInHierarchyValidatorSchema, entry: Comment | CommentWithRelated, relatedEntity?: any, dropBlockedThreads?: boolean, blockNestedThreads?: boolean): any; findAllInHierarchy({ filters, populate, sort, fields, startingFromId, dropBlockedThreads, isAdmin, omit, locale, limit, pagination, }: clientValidator.FindAllInHierarchyValidatorSchema, relatedEntity?: any): Promise; findOne(criteria: Partial): Promise<{ id?: number; documentId?: string; content?: string; blocked?: boolean; blockedThread?: boolean; blockReason?: string; isAdminComment?: boolean; removed?: boolean; approvalStatus?: string; related?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; authorId?: string; authorName?: string; authorEmail?: string; authorAvatar?: string; authorUser?: string | { id?: number; username?: string; email?: string; avatar?: { url?: string; name?: string; hash?: string; id?: number; formats?: { small?: { url?: string; name?: string; hash?: string; }; thumbnail?: { url?: string; name?: string; hash?: string; }; medium?: { url?: string; name?: string; hash?: string; }; large?: { url?: string; name?: string; hash?: string; }; }; }; }; locale?: string; rating?: number; lastExperience?: string; gotThread?: boolean; threadFirstItemId?: number; reports?: { id?: number; documentId?: string; content?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; locale?: string; rating?: number; lastExperience?: string; reason?: string; resolved?: boolean; }[]; author?: any; threadOf?: number | { id?: number; documentId?: string; content?: string; blocked?: boolean; blockedThread?: boolean; blockReason?: string; isAdminComment?: boolean; removed?: boolean; approvalStatus?: string; related?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; authorId?: string; authorName?: string; authorEmail?: string; authorAvatar?: string; authorUser?: string | { id?: number; username?: string; email?: string; avatar?: { url?: string; name?: string; hash?: string; id?: number; formats?: { small?: { url?: string; name?: string; hash?: string; }; thumbnail?: { url?: string; name?: string; hash?: string; }; medium?: { url?: string; name?: string; hash?: string; }; large?: { url?: string; name?: string; hash?: string; }; }; }; }; locale?: string; rating?: number; lastExperience?: string; gotThread?: boolean; threadFirstItemId?: number; reports?: { id?: number; documentId?: string; content?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; locale?: string; rating?: number; lastExperience?: string; reason?: string; resolved?: boolean; }[]; author?: any; }; }>; findMany(criteria: Params): Promise<{ id?: number; documentId?: string; content?: string; blocked?: boolean; blockedThread?: boolean; blockReason?: string; isAdminComment?: boolean; removed?: boolean; approvalStatus?: string; related?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; authorId?: string; authorName?: string; authorEmail?: string; authorAvatar?: string; authorUser?: string | { id?: number; username?: string; email?: string; avatar?: { url?: string; name?: string; hash?: string; id?: number; formats?: { small?: { url?: string; name?: string; hash?: string; }; thumbnail?: { url?: string; name?: string; hash?: string; }; medium?: { url?: string; name?: string; hash?: string; }; large?: { url?: string; name?: string; hash?: string; }; }; }; }; locale?: string; rating?: number; lastExperience?: string; gotThread?: boolean; threadFirstItemId?: number; reports?: { id?: number; documentId?: string; content?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; locale?: string; rating?: number; lastExperience?: string; reason?: string; resolved?: boolean; }[]; author?: any; threadOf?: number | { id?: number; documentId?: string; content?: string; blocked?: boolean; blockedThread?: boolean; blockReason?: string; isAdminComment?: boolean; removed?: boolean; approvalStatus?: string; related?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; authorId?: string; authorName?: string; authorEmail?: string; authorAvatar?: string; authorUser?: string | { id?: number; username?: string; email?: string; avatar?: { url?: string; name?: string; hash?: string; id?: number; formats?: { small?: { url?: string; name?: string; hash?: string; }; thumbnail?: { url?: string; name?: string; hash?: string; }; medium?: { url?: string; name?: string; hash?: string; }; large?: { url?: string; name?: string; hash?: string; }; }; }; }; locale?: string; rating?: number; lastExperience?: string; gotThread?: boolean; threadFirstItemId?: number; reports?: { id?: number; documentId?: string; content?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; locale?: string; rating?: number; lastExperience?: string; reason?: string; resolved?: boolean; }[]; author?: any; }; }[]>; updateComment(criteria: Partial, data: Partial): Promise<{ id?: number; documentId?: string; content?: string; blocked?: boolean; blockedThread?: boolean; blockReason?: string; isAdminComment?: boolean; removed?: boolean; approvalStatus?: string; related?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; authorId?: string; authorName?: string; authorEmail?: string; authorAvatar?: string; authorUser?: string | { id?: number; username?: string; email?: string; avatar?: { url?: string; name?: string; hash?: string; id?: number; formats?: { small?: { url?: string; name?: string; hash?: string; }; thumbnail?: { url?: string; name?: string; hash?: string; }; medium?: { url?: string; name?: string; hash?: string; }; large?: { url?: string; name?: string; hash?: string; }; }; }; }; locale?: string; rating?: number; lastExperience?: string; gotThread?: boolean; threadFirstItemId?: number; reports?: { id?: number; documentId?: string; content?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; locale?: string; rating?: number; lastExperience?: string; reason?: string; resolved?: boolean; }[]; author?: any; threadOf?: number | { id?: number; documentId?: string; content?: string; blocked?: boolean; blockedThread?: boolean; blockReason?: string; isAdminComment?: boolean; removed?: boolean; approvalStatus?: string; related?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; authorId?: string; authorName?: string; authorEmail?: string; authorAvatar?: string; authorUser?: string | { id?: number; username?: string; email?: string; avatar?: { url?: string; name?: string; hash?: string; id?: number; formats?: { small?: { url?: string; name?: string; hash?: string; }; thumbnail?: { url?: string; name?: string; hash?: string; }; medium?: { url?: string; name?: string; hash?: string; }; large?: { url?: string; name?: string; hash?: string; }; }; }; }; locale?: string; rating?: number; lastExperience?: string; gotThread?: boolean; threadFirstItemId?: number; reports?: { id?: number; documentId?: string; content?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; locale?: string; rating?: number; lastExperience?: string; reason?: string; resolved?: boolean; }[]; author?: any; }; }>; findAllPerAuthor({ filters, populate, pagination, sort, fields, isAdmin, authorId, }: clientValidator.FindAllPerAuthorValidatorSchema, isStrapiAuthor?: boolean): Promise<{ data: ({ id?: number; documentId?: string; content?: string; blocked?: boolean; blockedThread?: boolean; blockReason?: string; isAdminComment?: boolean; removed?: boolean; approvalStatus?: string; related?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; authorId?: string; authorName?: string; authorEmail?: string; authorAvatar?: string; authorUser?: string | { id?: number; username?: string; email?: string; avatar?: { url?: string; name?: string; hash?: string; id?: number; formats?: { small?: { url?: string; name?: string; hash?: string; }; thumbnail?: { url?: string; name?: string; hash?: string; }; medium?: { url?: string; name?: string; hash?: string; }; large?: { url?: string; name?: string; hash?: string; }; }; }; }; locale?: string; rating?: number; lastExperience?: string; gotThread?: boolean; threadFirstItemId?: number; reports?: { id?: number; documentId?: string; content?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; locale?: string; rating?: number; lastExperience?: string; reason?: string; resolved?: boolean; }[]; threadOf?: number | { id?: number; documentId?: string; content?: string; blocked?: boolean; blockedThread?: boolean; blockReason?: string; isAdminComment?: boolean; removed?: boolean; approvalStatus?: string; related?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; authorId?: string; authorName?: string; authorEmail?: string; authorAvatar?: string; authorUser?: string | { id?: number; username?: string; email?: string; avatar?: { url?: string; name?: string; hash?: string; id?: number; formats?: { small?: { url?: string; name?: string; hash?: string; }; thumbnail?: { url?: string; name?: string; hash?: string; }; medium?: { url?: string; name?: string; hash?: string; }; large?: { url?: string; name?: string; hash?: string; }; }; }; }; locale?: string; rating?: number; lastExperience?: string; gotThread?: boolean; threadFirstItemId?: number; reports?: { id?: number; documentId?: string; content?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; locale?: string; rating?: number; lastExperience?: string; reason?: string; resolved?: boolean; }[]; author?: any; }; } | { id?: number; documentId?: string; content?: string; blocked?: boolean; blockedThread?: boolean; blockReason?: string; isAdminComment?: boolean; removed?: boolean; approvalStatus?: string; related?: { id?: number; documentId?: string; locale?: string; uid?: string; requireCommentsApproval?: boolean; }; createdAt?: string; updatedAt?: string; publishedAt?: string; authorId?: string; authorName?: string; authorEmail?: string; authorAvatar?: string; authorUser?: string | { id?: number; username?: string; email?: string; avatar?: { url?: string; name?: string; hash?: string; id?: number; formats?: { small?: { url?: string; name?: string; hash?: string; }; thumbnail?: { url?: string; name?: string; hash?: string; }; medium?: { url?: string; name?: string; hash?: string; }; large?: { url?: string; name?: string; hash?: string; }; }; }; }; locale?: string; rating?: number; lastExperience?: string; gotThread?: boolean; threadFirstItemId?: number; reports?: { id?: number; documentId?: string; content?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; locale?: string; rating?: number; lastExperience?: string; reason?: string; resolved?: boolean; }[]; threadOf?: number | { id?: number; documentId?: string; content?: string; blocked?: boolean; blockedThread?: boolean; blockReason?: string; isAdminComment?: boolean; removed?: boolean; approvalStatus?: string; related?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; authorId?: string; authorName?: string; authorEmail?: string; authorAvatar?: string; authorUser?: string | { id?: number; username?: string; email?: string; avatar?: { url?: string; name?: string; hash?: string; id?: number; formats?: { small?: { url?: string; name?: string; hash?: string; }; thumbnail?: { url?: string; name?: string; hash?: string; }; medium?: { url?: string; name?: string; hash?: string; }; large?: { url?: string; name?: string; hash?: string; }; }; }; }; locale?: string; rating?: number; lastExperience?: string; gotThread?: boolean; threadFirstItemId?: number; reports?: { id?: number; documentId?: string; content?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; locale?: string; rating?: number; lastExperience?: string; reason?: string; resolved?: boolean; }[]; author?: any; }; })[]; pagination?: Pagination; }>; findRelatedEntitiesFor(entries: Array): Promise>; mergeRelatedEntityTo(entity: Comment, relatedEntities?: Array): CommentWithRelated; modifiedNestedNestedComments(id: Id, fieldName: T_2, value: { id?: number; documentId?: string; content?: string; blocked?: boolean; blockedThread?: boolean; blockReason?: string; isAdminComment?: boolean; removed?: boolean; approvalStatus?: string; related?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; authorId?: string; authorName?: string; authorEmail?: string; authorAvatar?: string; authorUser?: string | { id?: number; username?: string; email?: string; avatar?: { url?: string; name?: string; hash?: string; id?: number; formats?: { small?: { url?: string; name?: string; hash?: string; }; thumbnail?: { url?: string; name?: string; hash?: string; }; medium?: { url?: string; name?: string; hash?: string; }; large?: { url?: string; name?: string; hash?: string; }; }; }; }; locale?: string; rating?: number; lastExperience?: string; gotThread?: boolean; threadFirstItemId?: number; reports?: { id?: number; documentId?: string; content?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; locale?: string; rating?: number; lastExperience?: string; reason?: string; resolved?: boolean; }[]; author?: any; threadOf?: number | { id?: number; documentId?: string; content?: string; blocked?: boolean; blockedThread?: boolean; blockReason?: string; isAdminComment?: boolean; removed?: boolean; approvalStatus?: string; related?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; authorId?: string; authorName?: string; authorEmail?: string; authorAvatar?: string; authorUser?: string | { id?: number; username?: string; email?: string; avatar?: { url?: string; name?: string; hash?: string; id?: number; formats?: { small?: { url?: string; name?: string; hash?: string; }; thumbnail?: { url?: string; name?: string; hash?: string; }; medium?: { url?: string; name?: string; hash?: string; }; large?: { url?: string; name?: string; hash?: string; }; }; }; }; locale?: string; rating?: number; lastExperience?: string; gotThread?: boolean; threadFirstItemId?: number; reports?: { id?: number; documentId?: string; content?: string; createdAt?: string; updatedAt?: string; publishedAt?: string; locale?: string; rating?: number; lastExperience?: string; reason?: string; resolved?: boolean; }[]; author?: any; }; }[T_2], deepLimit?: number): Promise; checkBadWords(content: string): Promise; perRemove(related: string, locale?: string): Promise; sanitizeCommentContent(content: string): string; registerLifecycleHook(): void; runLifecycleHook(): Promise; getLastCommentedResources({ limit, locale }: { limit: number; locale?: string; }): Promise>; getRatingsAverage({ documentIds, locale }: { documentIds: string[]; locale?: string; }): Promise>; }; export default commonService;