import type { GlobalMetadata, DescribeBlockMetadata, HookDefinitionMetadata, TestFileMetadata, TestEntryMetadata, TestInvocationMetadata, HookInvocationMetadata, TestFnInvocationMetadata, } from '../containers'; import type { AggregatedIdentifier } from '../ids'; import type { HookType } from '../types'; export interface MetadataFactory { createGlobalMetadata(): GlobalMetadata; createDescribeBlockMetadata( parent: TestFileMetadata | DescribeBlockMetadata, id: AggregatedIdentifier, ): DescribeBlockMetadata; createHookDefinitionMetadata( owner: DescribeBlockMetadata, id: AggregatedIdentifier, hookType: HookType, ): HookDefinitionMetadata; createHookInvocationMetadata( hookDefinition: HookDefinitionMetadata, parent: TestInvocationMetadata | DescribeBlockMetadata, id: AggregatedIdentifier, ): HookInvocationMetadata; createTestFileMetadata(testFilePath: string, globalMetadata: GlobalMetadata): TestFileMetadata; createTestEntryMetadata( describeBlock: DescribeBlockMetadata, id: AggregatedIdentifier, ): TestEntryMetadata; createTestFnInvocationMetadata( testInvocation: TestInvocationMetadata, id: AggregatedIdentifier, ): TestFnInvocationMetadata; createTestInvocationMetadata( testEntry: TestEntryMetadata, id: AggregatedIdentifier, ): TestInvocationMetadata; }