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; }