/// <reference types="node" />

import type { Circus } from '@jest/types';
import type { Config } from '@jest/types';
import type { EnvironmentContext } from '@jest/environment';
import type { Global as Global_2 } from '@jest/types';
import type { JestEnvironment } from '@jest/environment';
import type { JestEnvironmentConfig } from '@jest/environment';
import { LegacyFakeTimers } from '@jest/fake-timers';
import { ModernFakeTimers } from '@jest/fake-timers';
import { ModuleMocker } from 'jest-mock';
import vm from 'vm';

declare class MiniflareEnvironment implements JestEnvironment<Timer> {
    private readonly config;
    private context;
    fakeTimers: LegacyFakeTimers<Timer> | null;
    fakeTimersModern: ModernFakeTimers | null;
    global: Global_2.Global;
    moduleMocker: ModuleMocker | null;
    customExportConditions: string[];
    private readonly storageFactory;
    private readonly scriptRunner;
    private readonly queueBroker;
    private mf?;
    constructor(config: Config.ProjectConfig | JestEnvironmentConfig, _context: EnvironmentContext);
    setup(): Promise<void>;
    teardown(): Promise<void>;
    exportConditions(): string[];
    getVmContext(): vm.Context | null;
    handleTestEvent(event: Circus.SyncEvent | Circus.AsyncEvent, _state: Circus.State): void;
}
export default MiniflareEnvironment;

export declare type Timer = {
    id: number;
    ref: () => Timer;
    unref: () => Timer;
};

export { }
