/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// import type { Model, Types } from 'mongoose'; import type { IPrompt, IPromptGroupDocument } from '~/types'; export interface PromptDeps { /** Removes all ACL permissions for a resource. Injected from PermissionService. */ removeAllPermissions: (params: { resourceType: string; resourceId: unknown; }) => Promise; /** Returns resource IDs solely owned by the given user. From createAclEntryMethods. */ getSoleOwnedResourceIds: (userObjectId: Types.ObjectId, resourceTypes: string | string[]) => Promise; } export declare function createPromptMethods(mongoose: typeof import('mongoose'), deps: PromptDeps): { getPromptGroups: (filter: Record) => Promise<{ promptGroups: Record[]; pageNumber: string; pageSize: string; pages: string; message?: undefined; } | { message: string; promptGroups?: undefined; pageNumber?: undefined; pageSize?: undefined; pages?: undefined; }>; deletePromptGroup: ({ _id }: { _id: string; }) => Promise<{ message: string; }>; getAllPromptGroups: (filter: Record) => Promise[] | { message: string; }>; getListPromptGroupsByAccess: ({ accessibleIds, otherParams, limit, after, }: { accessibleIds?: Types.ObjectId[] | undefined; otherParams?: Record | undefined; limit?: number | null | undefined; after?: string | null | undefined; }) => Promise<{ object: "list"; data: Record[]; first_id: string | null; last_id: string | null; has_more: boolean; after: string | null; }>; incrementPromptGroupUsage: (groupId: string) => Promise<{ numberOfGenerations: number; }>; createPromptGroup: (saveData: { prompt: Record; group: Record; author: string; authorName: string; }) => Promise<{ prompt: import("mongoose").FlattenMaps & Required<{ _id: import("mongoose").FlattenMaps; }> & { __v: number; }; group: { productionPrompt: { prompt: string; }; name: string; numberOfGenerations: number; oneliner: string; category: string; productionId: Types.ObjectId; author: Types.ObjectId; authorName: string; command?: string | undefined; createdAt?: Date | undefined; updatedAt?: Date | undefined; isPublic?: boolean | undefined; tenantId?: string | undefined; _id: import("mongoose").FlattenMaps; $assertPopulated: (path: string | string[], values?: Partial | undefined) => Omit & Paths; $clearModifiedPaths: () => IPromptGroupDocument; $clone: () => IPromptGroupDocument; $createModifiedPathsSnapshot: () => import("mongoose").ModifiedPathsSnapshot; $getAllSubdocs: () => import("mongoose").Document[]; $ignore: (path: string) => void; $isDefault: (path: string) => boolean; $isDeleted: (val?: boolean | undefined) => boolean; $getPopulatedDocs: () => import("mongoose").Document[]; $inc: (path: string | string[], val?: number | undefined) => IPromptGroupDocument; $isEmpty: (path: string) => boolean; $isValid: (path: string) => boolean; $locals: import("mongoose").FlattenMaps>; $markValid: (path: string) => void; $model: { & { _id: Types.ObjectId; } & { __v: number; }, any>>(name: string): ModelType; >(): ModelType_1; }; $op: "save" | "validate" | "remove" | null; $restoreModifiedPathsSnapshot: (snapshot: import("mongoose").ModifiedPathsSnapshot) => IPromptGroupDocument; $session: (session?: import("mongodb").ClientSession | null | undefined) => import("mongodb").ClientSession | null; $set: { (path: string | Record, val: any, type: any, options?: import("mongoose").DocumentSetOptions | undefined): IPromptGroupDocument; (path: string | Record, val: any, options?: import("mongoose").DocumentSetOptions | undefined): IPromptGroupDocument; (value: string | Record): IPromptGroupDocument; }; $where: import("mongoose").FlattenMaps>; baseModelName?: string | undefined; collection: import("mongoose").Collection; db: import("mongoose").FlattenMaps; deleteOne: (options?: import("mongoose").QueryOptions | undefined) => any; depopulate: (path?: string | string[] | undefined) => import("mongoose").MergeType; directModifiedPaths: () => string[]; equals: (doc: import("mongoose").Document) => boolean; errors?: import("mongoose").Error.ValidationError | undefined; get: { (path: T, type?: any, options?: any): any; (path: string, type?: any, options?: any): any; }; getChanges: () => import("mongoose").UpdateQuery; id?: any; increment: () => IPromptGroupDocument; init: (obj: import("mongoose").AnyObject, opts?: import("mongoose").AnyObject | undefined) => IPromptGroupDocument; invalidate: { (path: T_1, errorMsg: string | NativeError, value?: any, kind?: string | undefined): NativeError | null; (path: string, errorMsg: string | NativeError, value?: any, kind?: string | undefined): NativeError | null; }; isDirectModified: { (path: T_2 | T_2[]): boolean; (path: string | string[]): boolean; }; isDirectSelected: { (path: T_3): boolean; (path: string): boolean; }; isInit: { (path: T_4): boolean; (path: string): boolean; }; isModified: { (path?: T_5 | T_5[] | undefined, options?: { ignoreAtomics?: boolean | undefined; } | null | undefined): boolean; (path?: string | string[] | undefined, options?: { ignoreAtomics?: boolean | undefined; } | null | undefined): boolean; }; isNew: boolean; isSelected: { (path: T_6): boolean; (path: string): boolean; }; markModified: { (path: T_7, scope?: any): void; (path: string, scope?: any): void; }; model: { & { _id: Types.ObjectId; } & { __v: number; }, any>>(name: string): ModelType_2; >(): ModelType_3; }; modifiedPaths: (options?: { includeChildren?: boolean | undefined; } | undefined) => string[]; overwrite: (obj: import("mongoose").AnyObject) => IPromptGroupDocument; $parent: () => import("mongoose").Document | undefined; populate: { (path: string | import("mongoose").PopulateOptions | (string | import("mongoose").PopulateOptions)[]): Promise>; (path: string, select?: string | import("mongoose").AnyObject | undefined, model?: Model | undefined, match?: import("mongoose").AnyObject | undefined, options?: import("mongoose").PopulateOptions | undefined): Promise>; }; populated: (path: string) => any; replaceOne: (replacement?: import("mongoose").AnyObject | undefined, options?: import("mongoose").QueryOptions | null | undefined) => import("mongoose").Query>; save: (options?: import("mongoose").SaveOptions | undefined) => Promise; schema: import("mongoose").FlattenMaps, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, { [x: string]: unknown; }, import("mongoose").Document> & import("mongoose").FlatRecord<{ [x: string]: unknown; }> & Required<{ _id: unknown; }> & { __v: number; }>>; set: { (path: T_8, val: any, type: any, options?: import("mongoose").DocumentSetOptions | undefined): IPromptGroupDocument; (path: string | Record, val: any, type: any, options?: import("mongoose").DocumentSetOptions | undefined): IPromptGroupDocument; (path: string | Record, val: any, options?: import("mongoose").DocumentSetOptions | undefined): IPromptGroupDocument; (value: string | Record): IPromptGroupDocument; }; toJSON: { (options?: (import("mongoose").ToObjectOptions & { _id: Types.ObjectId; } & { __v: number; }> & { flattenMaps?: true | undefined; flattenObjectIds?: false | undefined; }) | undefined): import("mongoose").FlattenMaps; (options: import("mongoose").ToObjectOptions & { _id: Types.ObjectId; } & { __v: number; }> & { flattenObjectIds: false; }): import("mongoose").FlattenMaps; (options: import("mongoose").ToObjectOptions & { _id: Types.ObjectId; } & { __v: number; }> & { flattenObjectIds: true; }): { [x: string]: any; }; (options: import("mongoose").ToObjectOptions & { _id: Types.ObjectId; } & { __v: number; }> & { flattenMaps: false; }): any; (options: import("mongoose").ToObjectOptions & { _id: Types.ObjectId; } & { __v: number; }> & { flattenMaps: false; flattenObjectIds: true; }): any; (options?: (import("mongoose").ToObjectOptions & { _id: Types.ObjectId; } & { __v: number; }> & { flattenMaps?: true | undefined; flattenObjectIds?: false | undefined; }) | undefined): import("mongoose").FlattenMaps; (options: import("mongoose").ToObjectOptions & { _id: Types.ObjectId; } & { __v: number; }> & { flattenObjectIds: false; }): import("mongoose").FlattenMaps; (options: import("mongoose").ToObjectOptions & { _id: Types.ObjectId; } & { __v: number; }> & { flattenObjectIds: true; }): import("mongoose").ObjectIdToString>; (options: import("mongoose").ToObjectOptions & { _id: Types.ObjectId; } & { __v: number; }> & { flattenMaps: false; }): T_12; (options: import("mongoose").ToObjectOptions & { _id: Types.ObjectId; } & { __v: number; }> & { flattenMaps: false; flattenObjectIds: true; }): import("mongoose").ObjectIdToString; }; toObject: { (options?: import("mongoose").ToObjectOptions & { _id: Types.ObjectId; } & { __v: number; }> | undefined): any; (options?: import("mongoose").ToObjectOptions & { _id: Types.ObjectId; } & { __v: number; }> | undefined): import("mongoose").Default__v>; }; unmarkModified: { (path: T_15): void; (path: string): void; }; updateOne: (update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery | undefined, options?: import("mongoose").QueryOptions | null | undefined) => import("mongoose").Query>; validate: { (pathsToValidate?: T_16 | T_16[] | undefined, options?: import("mongoose").AnyObject | undefined): Promise; (pathsToValidate?: import("mongoose").PathsToValidate | undefined, options?: import("mongoose").AnyObject | undefined): Promise; (options: { pathsToSkip?: import("mongoose").pathsToSkip | undefined; }): Promise; }; validateSync: { (options: { [k: string]: any; pathsToSkip?: import("mongoose").pathsToSkip | undefined; }): import("mongoose").Error.ValidationError | null; (pathsToValidate?: T_17 | T_17[] | undefined, options?: import("mongoose").AnyObject | undefined): import("mongoose").Error.ValidationError | null; (pathsToValidate?: import("mongoose").PathsToValidate | undefined, options?: import("mongoose").AnyObject | undefined): import("mongoose").Error.ValidationError | null; }; __v: number; }; }>; savePrompt: (saveData: { prompt: Record; author: string | Types.ObjectId; }) => Promise<{ prompt: import("mongoose").Document & IPrompt & Required<{ _id: unknown; }> & { __v: number; }; message?: undefined; } | { message: string; prompt?: undefined; }>; getPrompts: (filter: Record) => Promise<(import("mongoose").FlattenMaps & Required<{ _id: import("mongoose").FlattenMaps; }> & { __v: number; })[] | { message: string; }>; getPrompt: (filter: Record) => Promise<(import("mongoose").FlattenMaps & Required<{ _id: import("mongoose").FlattenMaps; }> & { __v: number; }) | { message: string; } | null>; getRandomPromptGroups: (filter: { skip: number | string; limit: number | string; }) => Promise<{ prompts: unknown[]; message?: undefined; } | { message: string; prompts?: undefined; }>; getPromptGroupsWithPrompts: (filter: Record) => Promise<(import("mongoose").FlattenMaps & Required<{ _id: import("mongoose").FlattenMaps; }> & { __v: number; }) | { message: string; } | null>; getPromptGroup: (filter: Record) => Promise; getOwnedPromptGroupIds: (author: string) => Promise[]>; deletePrompt: ({ promptId, groupId, }: { promptId: string | Types.ObjectId; groupId: string | Types.ObjectId; }) => Promise<{ prompt: string; promptGroup: { message: string; id: string | Types.ObjectId; }; } | { prompt: string; promptGroup?: undefined; }>; deleteUserPrompts: (userId: string) => Promise; updatePromptGroup: (filter: Record, data: Record) => Promise<(import("mongoose").Document & IPromptGroupDocument & Required<{ _id: unknown; }> & { __v: number; }) | { message: string; }>; makePromptProduction: (promptId: string) => Promise<{ message: string; }>; updatePromptLabels: (_id: string, labels: unknown) => Promise<{ message: string; }>; }; export type PromptMethods = ReturnType;