import { EventEmitter } from 'eventemitter3';
import type { LayoutMapping, XYPosition } from 'graphology-layout/utils';
import { type SimulationGraph } from '../../../types';
import type { GraphLayout, LayoutComputationCallbacks, SerializableLayoutComputationResult } from '../common';
interface LayoutEvents {
    computationStart: () => void;
    computationEnd: () => void;
}
/**
 * Worker class that handles the layout computation.
 * Creates a web worker and uses it to compute the layout.
 */
export declare class LayoutWorker extends EventEmitter<LayoutEvents> {
    private worker;
    private remoteApi;
    constructor();
    applyLayout(layoutInstance: GraphLayout, graph: SimulationGraph, forceUpdate?: (layout: LayoutMapping<XYPosition>, edgePoints?: LayoutMapping<XYPosition[]>) => void): Promise<SerializableLayoutComputationResult>;
    invokeCallback<CbName extends keyof LayoutComputationCallbacks>(cbName: CbName, ...args: Parameters<LayoutComputationCallbacks[CbName]>): Promise<void>;
    destroy(): void;
}
export {};
//# sourceMappingURL=client.d.ts.map