import type { SlotRegistry } from '@teambit/harmony'; import type { LoggerMain, Logger } from '@teambit/logger'; import type { CompilerMain } from '@teambit/compiler'; import type { Component, IComponent } from '@teambit/component'; import { ComponentMap } from '@teambit/component'; import type { ScopeMain } from '@teambit/scope'; import type { PkgMain } from '@teambit/pkg'; import type { Environment, EnvsMain } from '@teambit/envs'; import type { GraphqlMain } from '@teambit/graphql'; import type { PreviewMain } from '@teambit/preview'; import type { DevFilesMain } from '@teambit/dev-files'; import type { AbstractVinyl } from '@teambit/component.sources'; import type { Workspace } from '@teambit/workspace'; import { Doc } from '@teambit/docs.entities.doc'; import type { DocReader } from './doc-reader'; export type ComponentDocs = { files: string[]; component: Component; }; export type DocProp = {}; export type DocPropSlot = SlotRegistry; export type DocReaderSlot = SlotRegistry; export type DocsConfig = { /** * glob patterns to identify doc files. */ patterns: string[]; }; /** * the component documentation extension. */ export declare class DocsMain { private patterns; /** * envs extension. */ private preview; private pkg; private compiler; private workspace; private logger; private devFiles; private envs; private docPropSlot; private docReaderSlot; constructor(patterns: string[], /** * envs extension. */ preview: PreviewMain, pkg: PkgMain, compiler: CompilerMain, workspace: Workspace, logger: Logger, devFiles: DevFilesMain, envs: EnvsMain, docPropSlot: DocPropSlot, docReaderSlot: DocReaderSlot); /** * returns an array of doc file paths for a set of components. */ getDocsMap(components: Component[]): ComponentMap; getDocsFiles(component: Component): AbstractVinyl[]; /** * compute the description of the component from its source code and docs file. */ getDescription(component: Component): Promise; getTemplate(env: Environment): Promise; getDocReader(extension: string): DocReader | undefined; /** * compute a doc for a component. */ computeDoc(component: Component): Promise; getDoc(component: IComponent): Doc | null; getPatterns(): string[]; getComponentDevPatterns(component: Component): { name: string; pattern: string[]; }; getDevPatternToRegister(): (component: Component) => { name: string; pattern: string[]; }; /** * register a new doc reader. this allows to support further * documentation file formats. */ registerDocReader(docReader: DocReader): this; static slots: ((registerFn: () => string) => SlotRegistry)[]; static runtime: import("@teambit/harmony").RuntimeDefinition; static dependencies: import("@teambit/harmony").Aspect[]; static defaultConfig: { patterns: string[]; }; static provider([preview, graphql, workspace, pkg, compiler, loggerAspect, devFiles, envs, scope]: [ PreviewMain, GraphqlMain, Workspace, PkgMain, CompilerMain, LoggerMain, DevFilesMain, EnvsMain, ScopeMain ], config: DocsConfig, [docPropSlot, docReaderSlot]: [DocPropSlot, DocReaderSlot]): Promise; }