/**
 * Copyright Microsoft Corporation. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { fixtures } from '../common';
import type { TestInfoImpl } from './testInfo';
import type { RunnableDescription } from './timeoutManager';
import type { Location } from '../../types/testReporter';
declare class Fixture {
    runner: FixtureRunner;
    registration: fixtures.FixtureRegistration;
    value: any;
    failed: boolean;
    private _useFuncFinished;
    private _selfTeardownComplete;
    private _setupDescription;
    private _teardownDescription;
    private _stepInfo;
    _deps: Set<Fixture>;
    _usages: Set<Fixture>;
    constructor(runner: FixtureRunner, registration: fixtures.FixtureRegistration);
    setup(testInfo: TestInfoImpl, runnable: RunnableDescription): Promise<void>;
    private _setupInternal;
    teardown(testInfo: TestInfoImpl, runnable: RunnableDescription): Promise<void>;
    private _teardownInternal;
    _collectFixturesInTeardownOrder(scope: fixtures.FixtureScope, collector: Set<Fixture>): void;
}
export declare class FixtureRunner {
    private testScopeClean;
    pool: fixtures.FixturePool | undefined;
    instanceForId: Map<string, Fixture>;
    workerFixtureTimeout: number;
    setPool(pool: fixtures.FixturePool): void;
    private _collectFixturesInSetupOrder;
    teardownScope(scope: fixtures.FixtureScope, testInfo: TestInfoImpl, runnable: RunnableDescription): Promise<void>;
    resolveParametersForFunction(fn: Function, testInfo: TestInfoImpl, autoFixtures: 'worker' | 'test' | 'all-hooks-only', runnable: RunnableDescription): Promise<{
        result: object;
    } | null>;
    resolveParametersAndRunFunction(fn: Function, testInfo: TestInfoImpl, autoFixtures: 'worker' | 'test' | 'all-hooks-only', runnable: RunnableDescription): Promise<null | undefined>;
    private _setupFixtureForRegistration;
    dependsOnWorkerFixturesOnly(fn: Function, location: Location): boolean;
}
export {};
//# sourceMappingURL=fixtureRunner.d.ts.map