import { editor as Editor, Uri } from 'monaco-editor';
import { IArcadeWorker } from './types';
import { ArcadeLanguageServiceDefaults } from './arcade-defaults';
/**
 * Manager to create our arcade worker and client proxy
 */
export declare class WorkerManager {
    private _defaults;
    private _worker;
    private _client;
    private _configChangeListener;
    constructor(_defaults: ArcadeLanguageServiceDefaults);
    dispose(): void;
    stopWorker(): void;
    /**
     * Wait for the worker to be ready.
     * @returns A promise that resolves when the worker is ready.
     */
    static waitForWorker(): Promise<Editor.MonacoWebWorker<IArcadeWorker>>;
    private _getClientProxy;
    getLanguageServiceWorker(...resources: Uri[]): Promise<IArcadeWorker>;
}
