import { InstanceOfMetadataChecker } from '../checker';
import { GlobalMetadata, DescribeBlockMetadata, HookDefinitionMetadata, HookInvocationMetadata, TestFileMetadata, TestEntryMetadata, TestFnInvocationMetadata, TestInvocationMetadata } from '../containers';
import { AggregatedIdentifier } from '../ids';
import type { FileMetadataRegistry } from '../registry';
import type { HookType, WriteMetadataEventEmitter } from '../types';
import type { MetadataFactory } from './MetadataFactory';
export declare class MetadataFactoryImpl implements MetadataFactory {
    #private;
    private readonly metadataRegistry;
    private readonly emitter;
    constructor(metadataRegistry: FileMetadataRegistry<unknown>, emitter: WriteMetadataEventEmitter);
    get checker(): InstanceOfMetadataChecker;
    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<DescribeBlockMetadata | TestInvocationMetadata>;
    createTestFileMetadata(testFilePath: string, globalMetadata: GlobalMetadata): TestFileMetadata;
    createTestEntryMetadata(describeBlock: DescribeBlockMetadata, id: AggregatedIdentifier): TestEntryMetadata;
    createTestFnInvocationMetadata(testInvocation: TestInvocationMetadata, id: AggregatedIdentifier): TestFnInvocationMetadata;
    createTestInvocationMetadata(testEntry: TestEntryMetadata, id: AggregatedIdentifier): TestInvocationMetadata;
    private _register;
}
