import { ObjectID } from "bson";
import { ITag } from "../interface/tag";
import { ITagModel } from "../model/tag";
export declare const createUnsavedTag: (name: string, description?: string | undefined) => ITagModel;
export declare const getTagById: (id: ObjectID | string) => Promise<ITagModel | null>;
export declare const getTagByIdLean: (id: ObjectID | string) => Promise<ITag | null>;
export declare const getTagIdByName: (name: string) => Promise<ObjectID | null>;
export declare const getTagIdsByNames: (names: string[]) => Promise<ObjectID[]>;
export declare const getTagsByIds: (ids: ObjectID[]) => Promise<ITagModel[]>;
export declare const getTagsByIdsLean: (ids: ObjectID[]) => Promise<ITag[]>;
export declare const getTagByName: (name: string) => Promise<ITagModel | null>;
export declare const getTagByNameLean: (name: string) => Promise<ITag | null>;
export declare const getTagByNames: (names: string[]) => Promise<ITagModel[]>;
export declare const getTagByNamesLean: (names: string[]) => Promise<ITag[]>;
export declare const isTagDuplicatedByName: (name: string) => Promise<boolean>;
export declare const isTagDuplicatedById: (id: ObjectID) => Promise<boolean>;
export declare const getSelectedTagPages: (limit: number, keyword?: string | undefined) => Promise<number>;
export declare const getSelectedActiveTagPages: (limit: number, keyword?: string | undefined) => Promise<number>;
export declare const getTotalTagPages: (limit: number) => Promise<number>;
export declare const getTotalActiveTagPages: (limit: number) => Promise<number>;
export declare const getActiveTagPagesByKeyword: (limit: number, keyword: string) => Promise<number>;
export declare const getTagPagesByKeyword: (limit: number, keyword: string) => Promise<number>;
export declare const getSelectedActiveTagsByPage: (limit: number, page: number, keyword?: string | undefined) => Promise<ITagModel[]>;
export declare const getSelectedActiveTagsByPageLean: (limit: number, page: number, keyword?: string | undefined) => Promise<ITag[]>;
export declare const getSelectedTagsByPage: (limit: number, page: number, keyword?: string | undefined) => Promise<ITagModel[]>;
export declare const getSelectedTagsByPageLean: (limit: number, page: number, keyword?: string | undefined) => Promise<ITag[]>;
export declare const getAllActiveTags: () => Promise<ITagModel[]>;
export declare const getAllActiveTagsLean: () => Promise<ITag[]>;
export declare const getAllTags: () => Promise<ITagModel[]>;
export declare const getAllTagsLean: () => Promise<ITag[]>;
export declare const getActiveTagsByPage: (keyword: string, limit: number, page: number) => Promise<ITagModel[]>;
export declare const getActiveTagsByPageLean: (keyword: string, limit: number, page: number) => Promise<ITag[]>;
export declare const getTagsByPage: (keyword: string, limit: number, page: number) => Promise<ITagModel[]>;
export declare const getTagsByPageLean: (keyword: string, limit: number, page: number) => Promise<ITag[]>;
export declare const getAllActiveTagsByPage: (limit: number, page: number) => Promise<ITagModel[]>;
export declare const getAllActiveTagsByPageLean: (limit: number, page: number) => Promise<ITag[]>;
export declare const getAllTagsByPage: (limit: number, page: number) => Promise<ITagModel[]>;
export declare const getAllTagsByPageLean: (limit: number, page: number) => Promise<ITag[]>;
export declare const getTagsByQuery: (query: Record<string, any>) => Promise<ITagModel[]>;
export declare const getTagsByQueryLean: (query: Record<string, any>) => Promise<ITag[]>;
