import { type BaseClass } from '../../implementation/BaseClass.js'; import type Client from '../../index.js'; import type { TtsModel } from '../ttsModel/TtsModel.js'; import { type CategorySchema } from './category.schema.js'; /** * A TTS category. This is a category that TTS models can belong to. * Categories can also have subcategories. */ export declare class Category implements BaseClass { /** * @param client The main client. * @param data The raw category data from the FakeYou API. */ constructor(client: Client, data: CategorySchema); readonly client: Client; readonly token: string; readonly parentToken: string | null; readonly modelType: string; readonly name: string; readonly nameForDropdown: string; readonly canDirectlyHaveModels: boolean; readonly canHaveSubcategories: boolean; readonly canOnlyModsApply: boolean; readonly isModApproved: boolean | null; readonly isSynthetic: boolean; readonly shouldBeSorted: boolean; readonly createdAt: Date; readonly updatedAt: Date; readonly deletedAt: Date | null; /** * Fetch models that belong to this category. * * @returns A list of tts models that belong to this category. The array is empty if no models belong to this category. */ fetchModels(): Promise; /** * Fetch the parent category of this category. * * @returns The parent category of this category. Undefined if this category has no parent. */ getParent(): Promise; /** * Fetch the child categories of this category. * * @returns The child categories of this category. Empty array if this category has no children. */ getChildren(): Promise; }