import type { CLIMain } from '@teambit/cli'; import type { Workspace } from '@teambit/workspace'; import type { ComponentID } from '@teambit/component-id'; import type { ScopeMain } from '@teambit/scope'; import type { GraphqlMain } from '@teambit/graphql'; import type { ModelComponent, Version } from '@teambit/objects'; import type { DependencyResolverMain } from '@teambit/dependency-resolver'; import type { LoggerMain, Logger } from '@teambit/logger'; import type { DiffOptions, DiffResults, FieldsDiff, FileDiff } from '@teambit/legacy.component-diff'; import type { TesterMain } from '@teambit/tester'; import type { Component, ComponentMain } from '@teambit/component'; import type { SchemaMain } from '@teambit/schema'; import type { ImporterMain } from '@teambit/importer'; export type ComponentCompareResult = { id: string; baseId: string; compareId: string; code: FileDiff[]; fields: FieldsDiff[]; tests: FileDiff[]; }; type ConfigDiff = { version?: string; dependencies?: string[]; aspects?: Record; }; export declare class ComponentCompareMain { private componentAspect; private scope; private logger; private tester; private depResolver; private importer; private schema; private workspace?; constructor(componentAspect: ComponentMain, scope: ScopeMain, logger: Logger, tester: TesterMain, depResolver: DependencyResolverMain, importer: ImporterMain, schema: SchemaMain, workspace?: Workspace | undefined); compare(baseIdStr: string, compareIdStr: string): Promise; getAPIDiff(baseIdStr: string, compareIdStr: string): Promise | null>; diffByCLIValues(pattern?: string, version?: string, toVersion?: string, { verbose, table, parent }?: { verbose?: boolean; table?: boolean; parent?: boolean; }): Promise; getConfigForDiffById(id: string): Promise; getConfigForDiffByCompObject(component: Component, modifiedIds?: ComponentID[]): Promise<{ version: string; dependencies: string[]; aspects: {}; }>; private componentsDiff; /** * this method operates in two modes: * 1. workspace mode - the version and toVersion can be undefined. * 2. scope mode - the version and toVersion are mandatory. */ private computeDiff; diffBetweenVersionsObjects(modelComponent: ModelComponent, fromVersionObject: Version, toVersionObject: Version, fromVersion: string, toVersion: string, diffOpts: DiffOptions): Promise; static slots: never[]; static dependencies: import("@teambit/harmony").Aspect[]; static runtime: import("@teambit/harmony").RuntimeDefinition; static provider([graphql, component, scope, loggerMain, cli, workspace, tester, depResolver, importer, schema,]: [ GraphqlMain, ComponentMain, ScopeMain, LoggerMain, CLIMain, Workspace, TesterMain, DependencyResolverMain, ImporterMain, SchemaMain ]): Promise; } export default ComponentCompareMain;