///
import { DefaultListener, ListenerSignature } from "tiny-typed-emitter";
import { WorkerOptions } from "worker_threads";
import { Thread } from "./Thread";
import { ThreadExports, ThreadOptions, PromisefulModule } from "./Types";
/**
* Spawns a new `childThread` and returns a class to interface with it.
* @param {string} threadModule File, Module name or stringified code for thread to run.
* @param {Object} options Options for spawned thread.
* @param {string} [options.name] Name of thread, used for imports from other threads.
* @param {boolean} [options.eval] Indicates if `threadFile` is stringified code or a file. If true `options.threadName` must be given.
* @param {SharedArrayBuffer} [options.sharedArrayBuffer] Shared array buffer to use for thread.
* @param {*} [options.data] Data to be passed to thread as module.parent.thread.data
*/
export declare const Parent: = DefaultListener>(threadModule: string, options?: ThreadOptions | undefined, workerOptions?: WorkerOptions | undefined) => ParentThread;
export declare type ParentThread = DefaultListener> = PromisefulModule & ParentClass;
export declare class ParentClass = DefaultListener> extends Thread {
/**
* Spawns a new `childThread` and returns a class to interface with it.
* @param {string} threadModule File, Module name or stringified code for thread to run.
* @param {Object} options Options for spawned thread.
* @param {boolean} [options.eval] Indicates if `threadFile` is stringified code or a file. If true `options.threadName` must be given.
* @param {SharedArrayBuffer} [options.sharedArrayBuffer] Shared array buffer to use for thread.
* @param {*} [options.data] Data to be passed to thread as module.parent.thread.data
*/
constructor(threadModule: string, options?: ThreadOptions, workerOptions?: WorkerOptions);
}
//# sourceMappingURL=Parent.d.ts.map