UNPKG

strapi-plugin-comments

Version:
1,341 lines (1,340 loc) 114 kB
import { z } from 'zod'; export declare const configSchema: z.ZodObject<{ entryLabel: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>; approvalFlow: z.ZodArray<z.ZodString, "many">; blockedAuthorProps: z.ZodArray<z.ZodString, "many">; reportReasons: z.ZodRecord<z.ZodString, z.ZodString>; regex: z.ZodObject<{ uid: z.ZodString; relatedUid: z.ZodString; email: z.ZodString; sorting: z.ZodString; }, "strip", z.ZodTypeAny, { uid: string; relatedUid: string; email: string; sorting: string; }, { uid: string; relatedUid: string; email: string; sorting: string; }>; enabledCollections: z.ZodArray<z.ZodString, "many">; moderatorRoles: z.ZodArray<z.ZodString, "many">; isGQLPluginEnabled: z.ZodBoolean; badWords: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>; gql: z.ZodOptional<z.ZodObject<{ auth: z.ZodNullable<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { auth: boolean | null; }, { auth: boolean | null; }>>; client: z.ZodDefault<z.ZodObject<{ url: z.ZodNullable<z.ZodString>; contactEmail: z.ZodNullable<z.ZodString>; }, "strip", z.ZodTypeAny, { url: string | null; contactEmail: string | null; }, { url: string | null; contactEmail: string | null; }>>; }, "strip", z.ZodTypeAny, { entryLabel: Record<string, string[]>; approvalFlow: string[]; blockedAuthorProps: string[]; reportReasons: Record<string, string>; regex: { uid: string; relatedUid: string; email: string; sorting: string; }; enabledCollections: string[]; moderatorRoles: string[]; isGQLPluginEnabled: boolean; client: { url: string | null; contactEmail: string | null; }; badWords?: boolean | null | undefined; gql?: { auth: boolean | null; } | undefined; }, { entryLabel: Record<string, string[]>; approvalFlow: string[]; blockedAuthorProps: string[]; reportReasons: Record<string, string>; regex: { uid: string; relatedUid: string; email: string; sorting: string; }; enabledCollections: string[]; moderatorRoles: string[]; isGQLPluginEnabled: boolean; badWords?: boolean | null | undefined; gql?: { auth: boolean | null; } | undefined; client?: { url: string | null; contactEmail: string | null; } | undefined; }>; export type Config = z.infer<typeof configSchema>; declare const relatedSchema: z.ZodIntersection<z.ZodObject<{ id: z.ZodNumber; uid: z.ZodString; documentId: z.ZodString; createdAt: z.ZodString; updatedAt: z.ZodString; publishedAt: z.ZodNullable<z.ZodString>; locale: z.ZodOptional<z.ZodNullable<z.ZodString>>; }, "strip", z.ZodTypeAny, { uid: string; id: number; documentId: string; createdAt: string; updatedAt: string; publishedAt: string | null; locale?: string | null | undefined; }, { uid: string; id: number; documentId: string; createdAt: string; updatedAt: string; publishedAt: string | null; locale?: string | null | undefined; }>, z.ZodRecord<z.ZodString, z.ZodUnknown>>; declare const authorSchema: z.ZodObject<{ id: z.ZodNullable<z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>; name: z.ZodNullable<z.ZodOptional<z.ZodString>>; email: z.ZodNullable<z.ZodOptional<z.ZodString>>; avatar: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodObject<{ url: z.ZodString; }, "strip", z.ZodTypeAny, { url: string; }, { url: string; }>, z.ZodObject<{ url: z.ZodString; formats: z.ZodObject<{ thumbnail: z.ZodNullable<z.ZodObject<{ url: z.ZodString; }, "strip", z.ZodTypeAny, { url: string; }, { url: string; }>>; }, "strip", z.ZodTypeAny, { thumbnail: { url: string; } | null; }, { thumbnail: { url: string; } | null; }>; }, "strip", z.ZodTypeAny, { url: string; formats: { thumbnail: { url: string; } | null; }; }, { url: string; formats: { thumbnail: { url: string; } | null; }; }>, z.ZodString]>>>; }, "strip", z.ZodTypeAny, { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; }, { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; }>; export type Author = z.infer<typeof authorSchema>; declare const commentReportSchema: z.ZodObject<{ id: z.ZodNumber; reason: z.ZodNullable<z.ZodOptional<z.ZodString>>; content: z.ZodString; resolved: z.ZodBoolean; createdAt: z.ZodString; updatedAt: z.ZodNullable<z.ZodString>; }, "strip", z.ZodTypeAny, { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }, { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }>; declare const baseCommentSchema: z.ZodObject<{ id: z.ZodNumber; content: z.ZodString; blocked: z.ZodNullable<z.ZodBoolean>; blockedThread: z.ZodNullable<z.ZodBoolean>; blockReason: z.ZodNullable<z.ZodString>; isAdminComment: z.ZodNullable<z.ZodBoolean>; removed: z.ZodNullable<z.ZodBoolean>; approvalStatus: z.ZodNullable<z.ZodUnion<[z.ZodLiteral<"PENDING">, z.ZodLiteral<"APPROVED">, z.ZodLiteral<"REJECTED">, z.ZodLiteral<"BLOCKED">, z.ZodLiteral<"OPEN">, z.ZodLiteral<"REMOVED">, z.ZodLiteral<"TO_REVIEW">, z.ZodLiteral<"UNKNOWN">]>>; createdAt: z.ZodString; updatedAt: z.ZodString; reports: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{ id: z.ZodNumber; reason: z.ZodNullable<z.ZodOptional<z.ZodString>>; content: z.ZodString; resolved: z.ZodBoolean; createdAt: z.ZodString; updatedAt: z.ZodNullable<z.ZodString>; }, "strip", z.ZodTypeAny, { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }, { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }>, "many">>>; author: z.ZodOptional<z.ZodNullable<z.ZodObject<{ id: z.ZodNullable<z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>; name: z.ZodNullable<z.ZodOptional<z.ZodString>>; email: z.ZodNullable<z.ZodOptional<z.ZodString>>; avatar: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodObject<{ url: z.ZodString; }, "strip", z.ZodTypeAny, { url: string; }, { url: string; }>, z.ZodObject<{ url: z.ZodString; formats: z.ZodObject<{ thumbnail: z.ZodNullable<z.ZodObject<{ url: z.ZodString; }, "strip", z.ZodTypeAny, { url: string; }, { url: string; }>>; }, "strip", z.ZodTypeAny, { thumbnail: { url: string; } | null; }, { thumbnail: { url: string; } | null; }>; }, "strip", z.ZodTypeAny, { url: string; formats: { thumbnail: { url: string; } | null; }; }, { url: string; formats: { thumbnail: { url: string; } | null; }; }>, z.ZodString]>>>; }, "strip", z.ZodTypeAny, { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; }, { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; }>>>; gotThread: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>; threadFirstItemId: z.ZodOptional<z.ZodNullable<z.ZodNumber>>; }, "strip", z.ZodTypeAny, { id: number; createdAt: string; updatedAt: string; content: string; blocked: boolean | null; blockedThread: boolean | null; blockReason: string | null; isAdminComment: boolean | null; removed: boolean | null; approvalStatus: "PENDING" | "APPROVED" | "REJECTED" | "BLOCKED" | "OPEN" | "REMOVED" | "TO_REVIEW" | "UNKNOWN" | null; reports?: { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }[] | null | undefined; author?: { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; } | null | undefined; gotThread?: boolean | null | undefined; threadFirstItemId?: number | null | undefined; }, { id: number; createdAt: string; updatedAt: string; content: string; blocked: boolean | null; blockedThread: boolean | null; blockReason: string | null; isAdminComment: boolean | null; removed: boolean | null; approvalStatus: "PENDING" | "APPROVED" | "REJECTED" | "BLOCKED" | "OPEN" | "REMOVED" | "TO_REVIEW" | "UNKNOWN" | null; reports?: { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }[] | null | undefined; author?: { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; } | null | undefined; gotThread?: boolean | null | undefined; threadFirstItemId?: number | null | undefined; }>; type BaseComment = z.infer<typeof baseCommentSchema>; export type CommentReport = z.infer<typeof commentReportSchema>; export type Comment = BaseComment & { threadOf?: Comment | null; related?: z.infer<typeof relatedSchema> | string; documentId?: string; }; export declare const commentsSchema: z.ZodObject<{ pagination: z.ZodObject<{ page: z.ZodNumber; pageSize: z.ZodNumber; pageCount: z.ZodNumber; total: z.ZodNumber; }, "strip", z.ZodTypeAny, { page: number; pageSize: number; pageCount: number; total: number; }, { page: number; pageSize: number; pageCount: number; total: number; }>; result: z.ZodArray<z.ZodType<Comment, z.ZodTypeDef, Comment>, "many">; }, "strip", z.ZodTypeAny, { pagination: { page: number; pageSize: number; pageCount: number; total: number; }; result: Comment[]; }, { pagination: { page: number; pageSize: number; pageCount: number; total: number; }; result: Comment[]; }>; export declare const commentDetailsSchema: z.ZodObject<{ entity: z.ZodIntersection<z.ZodObject<{ id: z.ZodNumber; uid: z.ZodString; documentId: z.ZodString; createdAt: z.ZodString; updatedAt: z.ZodString; publishedAt: z.ZodNullable<z.ZodString>; locale: z.ZodOptional<z.ZodNullable<z.ZodString>>; }, "strip", z.ZodTypeAny, { uid: string; id: number; documentId: string; createdAt: string; updatedAt: string; publishedAt: string | null; locale?: string | null | undefined; }, { uid: string; id: number; documentId: string; createdAt: string; updatedAt: string; publishedAt: string | null; locale?: string | null | undefined; }>, z.ZodRecord<z.ZodString, z.ZodUnknown>>; selected: z.ZodNullable<z.ZodObject<{ id: z.ZodNumber; content: z.ZodString; blocked: z.ZodNullable<z.ZodBoolean>; blockedThread: z.ZodNullable<z.ZodBoolean>; blockReason: z.ZodNullable<z.ZodString>; isAdminComment: z.ZodNullable<z.ZodBoolean>; removed: z.ZodNullable<z.ZodBoolean>; approvalStatus: z.ZodNullable<z.ZodUnion<[z.ZodLiteral<"PENDING">, z.ZodLiteral<"APPROVED">, z.ZodLiteral<"REJECTED">, z.ZodLiteral<"BLOCKED">, z.ZodLiteral<"OPEN">, z.ZodLiteral<"REMOVED">, z.ZodLiteral<"TO_REVIEW">, z.ZodLiteral<"UNKNOWN">]>>; createdAt: z.ZodString; updatedAt: z.ZodString; reports: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{ id: z.ZodNumber; reason: z.ZodNullable<z.ZodOptional<z.ZodString>>; content: z.ZodString; resolved: z.ZodBoolean; createdAt: z.ZodString; updatedAt: z.ZodNullable<z.ZodString>; }, "strip", z.ZodTypeAny, { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }, { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }>, "many">>>; author: z.ZodOptional<z.ZodNullable<z.ZodObject<{ id: z.ZodNullable<z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>; name: z.ZodNullable<z.ZodOptional<z.ZodString>>; email: z.ZodNullable<z.ZodOptional<z.ZodString>>; avatar: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodObject<{ url: z.ZodString; }, "strip", z.ZodTypeAny, { url: string; }, { url: string; }>, z.ZodObject<{ url: z.ZodString; formats: z.ZodObject<{ thumbnail: z.ZodNullable<z.ZodObject<{ url: z.ZodString; }, "strip", z.ZodTypeAny, { url: string; }, { url: string; }>>; }, "strip", z.ZodTypeAny, { thumbnail: { url: string; } | null; }, { thumbnail: { url: string; } | null; }>; }, "strip", z.ZodTypeAny, { url: string; formats: { thumbnail: { url: string; } | null; }; }, { url: string; formats: { thumbnail: { url: string; } | null; }; }>, z.ZodString]>>>; }, "strip", z.ZodTypeAny, { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; }, { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; }>>>; gotThread: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>; threadFirstItemId: z.ZodOptional<z.ZodNullable<z.ZodNumber>>; } & { related: z.ZodString; threadOf: z.ZodOptional<z.ZodNullable<z.ZodObject<Omit<{ id: z.ZodNumber; content: z.ZodString; blocked: z.ZodNullable<z.ZodBoolean>; blockedThread: z.ZodNullable<z.ZodBoolean>; blockReason: z.ZodNullable<z.ZodString>; isAdminComment: z.ZodNullable<z.ZodBoolean>; removed: z.ZodNullable<z.ZodBoolean>; approvalStatus: z.ZodNullable<z.ZodUnion<[z.ZodLiteral<"PENDING">, z.ZodLiteral<"APPROVED">, z.ZodLiteral<"REJECTED">, z.ZodLiteral<"BLOCKED">, z.ZodLiteral<"OPEN">, z.ZodLiteral<"REMOVED">, z.ZodLiteral<"TO_REVIEW">, z.ZodLiteral<"UNKNOWN">]>>; createdAt: z.ZodString; updatedAt: z.ZodString; reports: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{ id: z.ZodNumber; reason: z.ZodNullable<z.ZodOptional<z.ZodString>>; content: z.ZodString; resolved: z.ZodBoolean; createdAt: z.ZodString; updatedAt: z.ZodNullable<z.ZodString>; }, "strip", z.ZodTypeAny, { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }, { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }>, "many">>>; author: z.ZodOptional<z.ZodNullable<z.ZodObject<{ id: z.ZodNullable<z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>; name: z.ZodNullable<z.ZodOptional<z.ZodString>>; email: z.ZodNullable<z.ZodOptional<z.ZodString>>; avatar: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodObject<{ url: z.ZodString; }, "strip", z.ZodTypeAny, { url: string; }, { url: string; }>, z.ZodObject<{ url: z.ZodString; formats: z.ZodObject<{ thumbnail: z.ZodNullable<z.ZodObject<{ url: z.ZodString; }, "strip", z.ZodTypeAny, { url: string; }, { url: string; }>>; }, "strip", z.ZodTypeAny, { thumbnail: { url: string; } | null; }, { thumbnail: { url: string; } | null; }>; }, "strip", z.ZodTypeAny, { url: string; formats: { thumbnail: { url: string; } | null; }; }, { url: string; formats: { thumbnail: { url: string; } | null; }; }>, z.ZodString]>>>; }, "strip", z.ZodTypeAny, { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; }, { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; }>>>; gotThread: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>; threadFirstItemId: z.ZodOptional<z.ZodNullable<z.ZodNumber>>; } & { related: z.ZodOptional<z.ZodIntersection<z.ZodObject<{ id: z.ZodNumber; uid: z.ZodString; documentId: z.ZodString; createdAt: z.ZodString; updatedAt: z.ZodString; publishedAt: z.ZodNullable<z.ZodString>; locale: z.ZodOptional<z.ZodNullable<z.ZodString>>; }, "strip", z.ZodTypeAny, { uid: string; id: number; documentId: string; createdAt: string; updatedAt: string; publishedAt: string | null; locale?: string | null | undefined; }, { uid: string; id: number; documentId: string; createdAt: string; updatedAt: string; publishedAt: string | null; locale?: string | null | undefined; }>, z.ZodRecord<z.ZodString, z.ZodUnknown>>>; documentId: z.ZodString; threadOf: z.ZodOptional<z.ZodNullable<z.ZodLazy<z.ZodObject<{ id: z.ZodNumber; content: z.ZodString; blocked: z.ZodNullable<z.ZodBoolean>; blockedThread: z.ZodNullable<z.ZodBoolean>; blockReason: z.ZodNullable<z.ZodString>; isAdminComment: z.ZodNullable<z.ZodBoolean>; removed: z.ZodNullable<z.ZodBoolean>; approvalStatus: z.ZodNullable<z.ZodUnion<[z.ZodLiteral<"PENDING">, z.ZodLiteral<"APPROVED">, z.ZodLiteral<"REJECTED">, z.ZodLiteral<"BLOCKED">, z.ZodLiteral<"OPEN">, z.ZodLiteral<"REMOVED">, z.ZodLiteral<"TO_REVIEW">, z.ZodLiteral<"UNKNOWN">]>>; createdAt: z.ZodString; updatedAt: z.ZodString; reports: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{ id: z.ZodNumber; reason: z.ZodNullable<z.ZodOptional<z.ZodString>>; content: z.ZodString; resolved: z.ZodBoolean; createdAt: z.ZodString; updatedAt: z.ZodNullable<z.ZodString>; }, "strip", z.ZodTypeAny, { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }, { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }>, "many">>>; author: z.ZodOptional<z.ZodNullable<z.ZodObject<{ id: z.ZodNullable<z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>; name: z.ZodNullable<z.ZodOptional<z.ZodString>>; email: z.ZodNullable<z.ZodOptional<z.ZodString>>; avatar: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodObject<{ url: z.ZodString; }, "strip", z.ZodTypeAny, { url: string; }, { url: string; }>, z.ZodObject<{ url: z.ZodString; formats: z.ZodObject<{ thumbnail: z.ZodNullable<z.ZodObject<{ url: z.ZodString; }, "strip", z.ZodTypeAny, { url: string; }, { url: string; }>>; }, "strip", z.ZodTypeAny, { thumbnail: { url: string; } | null; }, { thumbnail: { url: string; } | null; }>; }, "strip", z.ZodTypeAny, { url: string; formats: { thumbnail: { url: string; } | null; }; }, { url: string; formats: { thumbnail: { url: string; } | null; }; }>, z.ZodString]>>>; }, "strip", z.ZodTypeAny, { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; }, { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; }>>>; gotThread: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>; threadFirstItemId: z.ZodOptional<z.ZodNullable<z.ZodNumber>>; } & { related: z.ZodString; threadOf: z.ZodOptional<z.ZodNullable<z.ZodType<Comment, z.ZodTypeDef, Comment>>>; documentId: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: number; createdAt: string; updatedAt: string; content: string; blocked: boolean | null; blockedThread: boolean | null; blockReason: string | null; isAdminComment: boolean | null; removed: boolean | null; approvalStatus: "PENDING" | "APPROVED" | "REJECTED" | "BLOCKED" | "OPEN" | "REMOVED" | "TO_REVIEW" | "UNKNOWN" | null; related: string; documentId?: string | undefined; reports?: { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }[] | null | undefined; author?: { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; } | null | undefined; gotThread?: boolean | null | undefined; threadFirstItemId?: number | null | undefined; threadOf?: Comment | null | undefined; }, { id: number; createdAt: string; updatedAt: string; content: string; blocked: boolean | null; blockedThread: boolean | null; blockReason: string | null; isAdminComment: boolean | null; removed: boolean | null; approvalStatus: "PENDING" | "APPROVED" | "REJECTED" | "BLOCKED" | "OPEN" | "REMOVED" | "TO_REVIEW" | "UNKNOWN" | null; related: string; documentId?: string | undefined; reports?: { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }[] | null | undefined; author?: { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; } | null | undefined; gotThread?: boolean | null | undefined; threadFirstItemId?: number | null | undefined; threadOf?: Comment | null | undefined; }>>>>; }, "related"> & { related: z.ZodString; }, "strip", z.ZodTypeAny, { id: number; documentId: string; createdAt: string; updatedAt: string; content: string; blocked: boolean | null; blockedThread: boolean | null; blockReason: string | null; isAdminComment: boolean | null; removed: boolean | null; approvalStatus: "PENDING" | "APPROVED" | "REJECTED" | "BLOCKED" | "OPEN" | "REMOVED" | "TO_REVIEW" | "UNKNOWN" | null; related: string; reports?: { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }[] | null | undefined; author?: { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; } | null | undefined; gotThread?: boolean | null | undefined; threadFirstItemId?: number | null | undefined; threadOf?: { id: number; createdAt: string; updatedAt: string; content: string; blocked: boolean | null; blockedThread: boolean | null; blockReason: string | null; isAdminComment: boolean | null; removed: boolean | null; approvalStatus: "PENDING" | "APPROVED" | "REJECTED" | "BLOCKED" | "OPEN" | "REMOVED" | "TO_REVIEW" | "UNKNOWN" | null; related: string; documentId?: string | undefined; reports?: { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }[] | null | undefined; author?: { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; } | null | undefined; gotThread?: boolean | null | undefined; threadFirstItemId?: number | null | undefined; threadOf?: Comment | null | undefined; } | null | undefined; }, { id: number; documentId: string; createdAt: string; updatedAt: string; content: string; blocked: boolean | null; blockedThread: boolean | null; blockReason: string | null; isAdminComment: boolean | null; removed: boolean | null; approvalStatus: "PENDING" | "APPROVED" | "REJECTED" | "BLOCKED" | "OPEN" | "REMOVED" | "TO_REVIEW" | "UNKNOWN" | null; related: string; reports?: { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }[] | null | undefined; author?: { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; } | null | undefined; gotThread?: boolean | null | undefined; threadFirstItemId?: number | null | undefined; threadOf?: { id: number; createdAt: string; updatedAt: string; content: string; blocked: boolean | null; blockedThread: boolean | null; blockReason: string | null; isAdminComment: boolean | null; removed: boolean | null; approvalStatus: "PENDING" | "APPROVED" | "REJECTED" | "BLOCKED" | "OPEN" | "REMOVED" | "TO_REVIEW" | "UNKNOWN" | null; related: string; documentId?: string | undefined; reports?: { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }[] | null | undefined; author?: { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; } | null | undefined; gotThread?: boolean | null | undefined; threadFirstItemId?: number | null | undefined; threadOf?: Comment | null | undefined; } | null | undefined; }>>>; }, "strip", z.ZodTypeAny, { id: number; createdAt: string; updatedAt: string; content: string; blocked: boolean | null; blockedThread: boolean | null; blockReason: string | null; isAdminComment: boolean | null; removed: boolean | null; approvalStatus: "PENDING" | "APPROVED" | "REJECTED" | "BLOCKED" | "OPEN" | "REMOVED" | "TO_REVIEW" | "UNKNOWN" | null; related: string; reports?: { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }[] | null | undefined; author?: { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; } | null | undefined; gotThread?: boolean | null | undefined; threadFirstItemId?: number | null | undefined; threadOf?: { id: number; documentId: string; createdAt: string; updatedAt: string; content: string; blocked: boolean | null; blockedThread: boolean | null; blockReason: string | null; isAdminComment: boolean | null; removed: boolean | null; approvalStatus: "PENDING" | "APPROVED" | "REJECTED" | "BLOCKED" | "OPEN" | "REMOVED" | "TO_REVIEW" | "UNKNOWN" | null; related: string; reports?: { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }[] | null | undefined; author?: { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; } | null | undefined; gotThread?: boolean | null | undefined; threadFirstItemId?: number | null | undefined; threadOf?: { id: number; createdAt: string; updatedAt: string; content: string; blocked: boolean | null; blockedThread: boolean | null; blockReason: string | null; isAdminComment: boolean | null; removed: boolean | null; approvalStatus: "PENDING" | "APPROVED" | "REJECTED" | "BLOCKED" | "OPEN" | "REMOVED" | "TO_REVIEW" | "UNKNOWN" | null; related: string; documentId?: string | undefined; reports?: { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }[] | null | undefined; author?: { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; } | null | undefined; gotThread?: boolean | null | undefined; threadFirstItemId?: number | null | undefined; threadOf?: Comment | null | undefined; } | null | undefined; } | null | undefined; }, { id: number; createdAt: string; updatedAt: string; content: string; blocked: boolean | null; blockedThread: boolean | null; blockReason: string | null; isAdminComment: boolean | null; removed: boolean | null; approvalStatus: "PENDING" | "APPROVED" | "REJECTED" | "BLOCKED" | "OPEN" | "REMOVED" | "TO_REVIEW" | "UNKNOWN" | null; related: string; reports?: { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }[] | null | undefined; author?: { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; } | null | undefined; gotThread?: boolean | null | undefined; threadFirstItemId?: number | null | undefined; threadOf?: { id: number; documentId: string; createdAt: string; updatedAt: string; content: string; blocked: boolean | null; blockedThread: boolean | null; blockReason: string | null; isAdminComment: boolean | null; removed: boolean | null; approvalStatus: "PENDING" | "APPROVED" | "REJECTED" | "BLOCKED" | "OPEN" | "REMOVED" | "TO_REVIEW" | "UNKNOWN" | null; related: string; reports?: { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }[] | null | undefined; author?: { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; } | null | undefined; gotThread?: boolean | null | undefined; threadFirstItemId?: number | null | undefined; threadOf?: { id: number; createdAt: string; updatedAt: string; content: string; blocked: boolean | null; blockedThread: boolean | null; blockReason: string | null; isAdminComment: boolean | null; removed: boolean | null; approvalStatus: "PENDING" | "APPROVED" | "REJECTED" | "BLOCKED" | "OPEN" | "REMOVED" | "TO_REVIEW" | "UNKNOWN" | null; related: string; documentId?: string | undefined; reports?: { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }[] | null | undefined; author?: { email?: string | null | undefined; id?: string | number | null | undefined; name?: string | null | undefined; avatar?: string | { url: string; } | { url: string; formats: { thumbnail: { url: string; } | null; }; } | null | undefined; } | null | undefined; gotThread?: boolean | null | undefined; threadFirstItemId?: number | null | undefined; threadOf?: Comment | null | undefined; } | null | undefined; } | null | undefined; }>>; level: z.ZodArray<z.ZodObject<Omit<{ id: z.ZodNumber; content: z.ZodString; blocked: z.ZodNullable<z.ZodBoolean>; blockedThread: z.ZodNullable<z.ZodBoolean>; blockReason: z.ZodNullable<z.ZodString>; isAdminComment: z.ZodNullable<z.ZodBoolean>; removed: z.ZodNullable<z.ZodBoolean>; approvalStatus: z.ZodNullable<z.ZodUnion<[z.ZodLiteral<"PENDING">, z.ZodLiteral<"APPROVED">, z.ZodLiteral<"REJECTED">, z.ZodLiteral<"BLOCKED">, z.ZodLiteral<"OPEN">, z.ZodLiteral<"REMOVED">, z.ZodLiteral<"TO_REVIEW">, z.ZodLiteral<"UNKNOWN">]>>; createdAt: z.ZodString; updatedAt: z.ZodString; reports: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{ id: z.ZodNumber; reason: z.ZodNullable<z.ZodOptional<z.ZodString>>; content: z.ZodString; resolved: z.ZodBoolean; createdAt: z.ZodString; updatedAt: z.ZodNullable<z.ZodString>; }, "strip", z.ZodTypeAny, { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }, { resolved: boolean; id: number; createdAt: string; updatedAt: string | null; content: string; reason?: string | null | undefined; }>, "many">>>; author: z.ZodOptional<z.ZodNullable<z.ZodObject<{ id: z.ZodNullable<z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>; name: z.ZodNullable<z.ZodOptional<z.ZodString>>; email: z.ZodNullable<z.ZodOptional<z.ZodString>>; avatar: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodObject<{ url: z.ZodString; }, "strip", z.ZodTypeAny, { url: string; }, { url: string; }>, z.ZodObject<{ url: z.ZodString; formats: z.ZodObject<{ thumbnail: z.ZodNullable<z.ZodObject<{ url: z.ZodString; }, "strip", z.ZodTypeAny, { url: string; }, { url: string; }>>;