import type { AggregatedIdentifier } from '../ids';
import * as symbols from '../symbols';
import type { InvocationMetadata } from '../types';
import { BaseMetadata } from './BaseMetadata';
import type { DescribeBlockMetadata } from './DescribeBlockMetadata';
import type { HookInvocationMetadata } from './HookInvocationMetadata';
import type { MetadataContext } from './MetadataContext';
import type { TestEntryMetadata } from './TestEntryMetadata';
import type { TestFileMetadata } from './TestFileMetadata';
import type { TestFnInvocationMetadata } from './TestFnInvocationMetadata';
export declare class TestInvocationMetadata extends BaseMetadata implements InvocationMetadata {
    readonly definition: TestEntryMetadata;
    readonly beforeAll: HookInvocationMetadata<DescribeBlockMetadata>[];
    readonly beforeEach: HookInvocationMetadata<TestInvocationMetadata>[];
    fn?: TestFnInvocationMetadata;
    readonly afterEach: HookInvocationMetadata<TestInvocationMetadata>[];
    readonly afterAll: HookInvocationMetadata<DescribeBlockMetadata>[];
    constructor(context: MetadataContext, definition: TestEntryMetadata, id: AggregatedIdentifier);
    get file(): TestFileMetadata;
    [symbols.start](): void;
    [symbols.pushBeforeAll](metadatas: HookInvocationMetadata<DescribeBlockMetadata>[]): void;
    [symbols.pushAfterAll](metadatas: HookInvocationMetadata<DescribeBlockMetadata>[]): void;
    [symbols.finish](): void;
    invocations(): IterableIterator<HookInvocationMetadata<TestInvocationMetadata> | TestFnInvocationMetadata>;
    allInvocations(): IterableIterator<HookInvocationMetadata | TestFnInvocationMetadata>;
    allAncestors(): IterableIterator<BaseMetadata>;
}
