import type { LoadSnapshot } from './load_signal';
import { SnapshotStore } from './load_signal';
export interface EventLoopSnapshot extends LoadSnapshot {
    exceededMillis: number;
}
export interface EventLoopLoadSignalOptions {
    eventLoopSnapshotIntervalSecs?: number;
    maxBlockedMillis?: number;
    overloadedRatio?: number;
    snapshotHistoryMillis?: number;
}
/**
 * Periodically measures event loop delay and reports overload when the
 * delay exceeds a configured threshold.
 */
// @ts-ignore optional peer dependency or compatibility with es2022
export declare function createEventLoopLoadSignal(options?: EventLoopLoadSignalOptions): Omit<import("./load_signal").LoadSignal, "getSample"> & {
    store: SnapshotStore<EventLoopSnapshot>;
    handle: (cb: () => unknown) => void;
    getSample(sampleDurationMillis?: number): EventLoopSnapshot[];
};
/** @internal Return type for backward compat in Snapshotter facade */
export type EventLoopLoadSignal = ReturnType<typeof createEventLoopLoadSignal>;
