import { RenameId } from "../utils/mongoDB/types.js";
import { User } from "./user.types.js";
import { Project } from "./project.types.js";
import { ContentNode, Dictionary as Dictionary$1 } from "@intlayer/types";
import { Document, Model, ObjectIdToString, Types } from "mongoose";

//#region src/types/dictionary.types.d.ts
type DictionaryCreationData = {
  projectIds: (Project['id'] | string)[];
  key: string;
  content?: ContentNode;
  title?: string;
  description?: string;
  priority?: number;
  importMode?: 'static' | 'dynamic' | 'fetch';
  tags?: string[];
};
type VersionedContentEl = {
  name?: string;
  description?: string;
  content: ContentNode;
};
type ContentVersion = string;
type VersionedContent = Map<string, VersionedContentEl>;
type DictionaryData = {
  key: string;
  content: VersionedContent;
  projectIds: (Project['id'] | string)[];
  creatorId: User['id'];
  title?: string;
  description?: string;
  priority?: number;
  importMode?: 'static' | 'dynamic' | 'fetch';
  tags?: string[];
};
type Dictionary = DictionaryData & {
  id: Types.ObjectId;
  createdAt: number;
  updatedAt: number;
};
type DictionaryAPI = ObjectIdToString<Dictionary$1 & {
  projectIds: (Project['id'] | string)[];
  updatedAt: number;
  createdAt: number;
}>;
type DictionarySchema = RenameId<Dictionary>;
type DictionaryModelType = Model<Dictionary>;
type DictionaryDocument = Document<unknown, {}, Dictionary> & Dictionary;
//#endregion
export { ContentVersion, Dictionary, DictionaryAPI, DictionaryCreationData, DictionaryData, DictionaryDocument, DictionaryModelType, DictionarySchema, VersionedContent, VersionedContentEl };
//# sourceMappingURL=dictionary.types.d.ts.map