///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
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;