import { IFileDirStat } from 'recursive-readdir-files'; import { PageConfig, Toc } from '../markdown/markdown.js'; export declare type LogoOrFavicon = { href?: string; raw?: string; path?: string; base64?: string; /** svg code */ code?: string; }; export interface SiteGlobalConfig { /** site name */ site?: string; title?: string; keywords?: string; /** The url to the project homepage. */ homepage?: string; description?: string; scope?: string[]; scopePrivate?: string[]; tocs?: Toc[] | boolean; /** website logo icon */ logo?: LogoOrFavicon; /** website favicon icon */ favicon?: LogoOrFavicon; editButton?: { label?: string; url?: string; }; openSource?: string | { type: string; url: string; }; footer?: string; menus?: Record; /** * https://github.com/jaywcjlove/idoc/issues/58 */ cacheFileStat?: boolean; copyAssets?: string | string[]; /** minify HTML */ minify?: boolean; /** Template Data */ data?: Record; theme?: string; sideEffectFiles?: Array; } export interface Config extends SiteGlobalConfig { root: string; dir: string; output: string; chapters: Array>; asset: IFileDirStat[]; config?: Partial>; /** `/README.md` */ readme?: string; /** project version */ version?: string; /** idoc version */ idocVersion?: string; global?: IdocConfig; page?: PageConfig; } export interface IdocConfig extends Omit { /** website logo icon */ logo?: string | LogoOrFavicon; /** website favicon icon */ favicon?: string | LogoOrFavicon; } export declare type MenuData = { name: string; url?: string; raw?: string; active?: boolean; target?: string; }; export declare const cacheCopyiedFiles: string[]; export declare class Conf { constructor(); data: Config; get all(): Config; set footer(str: string); set logo(src: string); set favicon(src: string); set all(data: Config); initConf(): Promise; getChaptersConf(): Promise; getFiles(): Promise; getReadme(): Promise; initScope(): void; getRelativePath(toPath: string): string; getMenuData(toPath: string): MenuData[]; } export declare function transformLogoOrFavicon(opts: string | LogoOrFavicon): LogoOrFavicon; export declare function getOutputCurrentPath(current: string): string; export declare const isIncludesDocs: (assetPath: string) => boolean; export declare function isScope(toPath: string, scope?: string): boolean; export declare function isActive(from: string, toPath: string): boolean; export declare const config: Conf;