import type { GlobalMetadata, DescribeBlockMetadata, HookDefinitionMetadata, HookInvocationMetadata, TestFileMetadata, TestEntryMetadata, TestFnInvocationMetadata, TestInvocationMetadata } from '../containers';
import type { Metadata } from '../types';
import type { MetadataChecker } from './MetadataChecker';
type Constructor<T> = new (...args: any[]) => T;
export type InstanceOfMetadataCheckerConfig = {
    GlobalMetadata: Constructor<GlobalMetadata>;
    DescribeBlockMetadata: Constructor<DescribeBlockMetadata>;
    HookDefinitionMetadata: Constructor<HookDefinitionMetadata>;
    TestEntryMetadata: Constructor<TestEntryMetadata>;
    HookInvocationMetadata: Constructor<HookInvocationMetadata>;
    TestInvocationMetadata: Constructor<TestInvocationMetadata>;
    TestFnInvocationMetadata: Constructor<TestFnInvocationMetadata>;
    TestFileMetadata: Constructor<TestFileMetadata>;
};
export declare class InstanceOfMetadataChecker implements MetadataChecker {
    private readonly config;
    constructor(config: InstanceOfMetadataCheckerConfig);
    isGlobalMetadata(metadata: Metadata | undefined): metadata is GlobalMetadata;
    isTestFileMetadata(metadata: Metadata | undefined): metadata is TestFileMetadata;
    isDescribeBlockMetadata(metadata: Metadata | undefined): metadata is DescribeBlockMetadata;
    isHookDefinitionMetadata(metadata: Metadata | undefined): metadata is HookDefinitionMetadata;
    isTestEntryMetadata(metadata: Metadata | undefined): metadata is TestEntryMetadata;
    isHookInvocationMetadata(metadata: Metadata | undefined): metadata is HookInvocationMetadata;
    isTestInvocationMetadata(metadata: Metadata | undefined): metadata is TestInvocationMetadata;
    isTestFnInvocationMetadata(metadata: Metadata | undefined): metadata is TestFnInvocationMetadata;
    asTestInvocationMetadata(metadata: Metadata | undefined): TestInvocationMetadata;
    asDescribeBlockMetadata(metadata: Metadata | undefined): DescribeBlockMetadata;
    asTestFileMetadata(metadata: Metadata | undefined): TestFileMetadata;
    asTestEntryMetadata(metadata: Metadata | undefined): TestEntryMetadata;
    asGlobalMetadata(metadata: Metadata | undefined): GlobalMetadata;
    private _assert;
}
export {};
