import type { SpecialTokens, Theme } from "../../../interfaces/general/index.ts"; export type Description = { type: 'text'; text: string; } | { type: 'link'; url: string; text: string; }; export interface ThemePropertyDoc { tags: string[]; desc: Description[]; } export type ThemeDocs = { [name: string]: ThemePropertyDoc; }; export declare function getTypeDocs(filePath: string, name: string): ThemeDocs; /** * Компилирует документацию для полей интерфейса темы и возвращает сериализованный JSON * * Собирает из jsDoc комментариев над полями интерфейса темы следующего следующие теги: * - @desc/@description – описание поля * - @tag – добавить тег (можно использовать несколько раз) * - @tags , , ... – задать список тегов, разделённых запятой * * По итогу компиляции формирует JSON вида: * { * "": { * "desc": "", * "tags": ["", "", ...] * }, * ... * } * * Умеет работать с выражениями вида: * - export interface MyTheme { ... } * - interface BaseTheme1 { ... } * interface BaseTheme2 { ... } * export interface MyTheme extends BaseTheme1, BaseTheme2 { ... } * - import { AnotherBaseTheme } from 'path/to/baseTheme.ts' * import { MyTheme, BaseTheme } from 'path/to/myTheme.ts' * export interface MyDarkTheme extends MyTheme, BaseTheme, AnotherBaseTheme * - export { BaseTheme as MyTheme } from 'path/to/baseTheme.ts' */ export declare function compileDocsJSON(theme: T): string;