import type { AspectData, Component, IComponent } from '@teambit/component'; import { ComponentMap } from '@teambit/component'; import type { ScopeMain } from '@teambit/scope'; import type { DevFilesMain } from '@teambit/dev-files'; import type { EnvsMain } from '@teambit/envs'; import type { GraphqlMain } from '@teambit/graphql'; import type { ComponentLoadOptions } from '@teambit/legacy.consumer-component'; import type { AbstractVinyl } from '@teambit/component.sources'; import type { PreviewMain } from '@teambit/preview'; import type { SchemaMain } from '@teambit/schema'; import type { Workspace } from '@teambit/workspace'; import { Composition } from './composition'; export type CompositionsConfig = { /** * glob pattern to detect composition files. This includes all related files, like styles and jsons. * @example ['/*.composition?(s).*'] */ compositionFilePattern: string[]; /** * glob pattern to select Preview files. this will only include files matched by compositionFilePattern. * @example ['*.{t,j}s', '*.{t,j}sx'] */ compositionPreviewFilePattern: string[]; }; /** * the component documentation extension. */ export declare class CompositionsMain { /** * Glob pattern to select all composition files */ private compositionFilePattern; /** * Glob pattern to select composition preview files */ private previewFilePattern; /** * envs extension. */ private preview; /** * workspace extension. */ private workspace; /** * schema extension. */ private schema; private devFiles; private envs; constructor( /** * Glob pattern to select all composition files */ compositionFilePattern: string[], /** * Glob pattern to select composition preview files */ previewFilePattern: string[], /** * envs extension. */ preview: PreviewMain, /** * workspace extension. */ workspace: Workspace, /** * schema extension. */ schema: SchemaMain, devFiles: DevFilesMain, envs: EnvsMain); /** * returns an array of doc file paths for a set of components. */ getPreviewFiles(components: Component[]): ComponentMap; /** * checks if a file matches the composition file pattern. */ isCompositionFile(filePath: string): boolean; /** * get component compositions. */ getCompositions(component: IComponent): Composition[]; /** * read composition from the component source code. */ readCompositions(component: Component): Composition[]; getCompositionFilePattern(): string[]; getComponentDevPatterns(component: Component): { name: string; pattern: string[]; }; getDevPatternToRegister(): (component: Component) => { name: string; pattern: string[]; }; onComponentLoad(component: Component, loadOpts?: ComponentLoadOptions): Promise; private computeCompositions; static defaultConfig: CompositionsConfig; static runtime: import("@teambit/harmony").RuntimeDefinition; static dependencies: import("@teambit/harmony").Aspect[]; static provider([preview, graphql, workspace, schema, devFiles, envs, scope]: [ PreviewMain, GraphqlMain, Workspace, SchemaMain, DevFilesMain, EnvsMain, ScopeMain ], config: CompositionsConfig): Promise; }