import type { AggregatedIdentifier } from '../ids';
import * as symbols from '../symbols';
import { BaseMetadata } from './BaseMetadata';
import type { DescribeBlockMetadata } from './DescribeBlockMetadata';
import type { GlobalMetadata } from './GlobalMetadata';
import type { HookInvocationMetadata } from './HookInvocationMetadata';
import type { MetadataContext } from './MetadataContext';
import type { TestEntryMetadata } from './TestEntryMetadata';
import type { TestFnInvocationMetadata } from './TestFnInvocationMetadata';
import type { TestInvocationMetadata } from './TestInvocationMetadata';
export declare class TestFileMetadata extends BaseMetadata {
    readonly globalMetadata: GlobalMetadata;
    [symbols.rootDescribeBlock]: DescribeBlockMetadata | undefined;
    [symbols.lastTestEntry]: TestEntryMetadata | undefined;
    [symbols.reportedTestEntries]: TestEntryMetadata[];
    [symbols.currentMetadata]: BaseMetadata;
    readonly current: import("..").MetadataSelector;
    constructor(context: MetadataContext, id: AggregatedIdentifier, globalMetadata: GlobalMetadata);
    get rootDescribeBlock(): DescribeBlockMetadata | undefined;
    get lastTestEntry(): TestEntryMetadata | undefined;
    [symbols.addDescribeBlock](id: AggregatedIdentifier): DescribeBlockMetadata;
    [symbols.start](): void;
    [symbols.finish](): void;
    allDescribeBlocks(): IterableIterator<DescribeBlockMetadata>;
    allTestEntries(): IterableIterator<TestEntryMetadata>;
    allInvocations(): IterableIterator<HookInvocationMetadata | TestFnInvocationMetadata>;
    allTestInvocations(): IterableIterator<TestInvocationMetadata>;
    /**
     * A specialized method to access test entries based on Jest's reporting sequence.
     * For internal use only - handles race conditions and inconsistencies in Jest's
     * reporting behavior (particularly with skipped vs. todo tests).
     *
     * @internal
     */
    _getReportedEntryByIndex(index: number): TestEntryMetadata | undefined;
}
