type TaskStatus = 'started' | 'success' | 'error' | 'node_count';
type TaskEventData = {
    id: string;
    type: string;
    status: TaskStatus;
    nodeCount?: number;
};
type EventListener = (data: TaskEventData) => void;
declare class Woolball {
    private wsConnection;
    private clientId;
    private eventListeners;
    private workerTypes;
    private wsUrl;
    private activeWorkers;
    constructor(id: string, url?: string);
    start(): void;
    destroy(): void;
    /**
     * Establishes WebSocket connection and sets up message handlers
     */
    private connectWebSocket;
    /**
     * Handles incoming WebSocket messages
     */
    private handleWebSocketMessage;
    /**
     * Sends a message to the WebSocket server
     */
    private sendWebSocketMessage;
    private createWorker;
    private terminateWorker;
    processEvent(type: string, value: any): Promise<any>;
    on(status: TaskStatus, listener: EventListener): void;
    off(status: TaskStatus, listener: EventListener): void;
    private emitEvent;
}
export default Woolball;
