import { IndexedQueue } from './indexed-queue'; import Promise = require('bluebird'); export interface ServiceProxyFactory { (worker: string | Function | Worker, opts?: ServiceProxyOpts): ServiceProxy; } export interface ServiceProxyOpts { timeout?: number; queue?: IndexedQueue; workify?: Function; revokeObjectURL?: Function; } export interface ServiceProxy { service: Promise; terminate(): Promise; kill(): void; } export interface WorkerServiceEvent extends MessageEvent { data: IndexedMethodCallSpec; } export interface ProxyCallSpec extends MethodCallSpec { timeout?: number; } export interface IndexedMethodCallSpec extends MethodCallSpec { uuid: number; } export interface MethodCallSpec { target?: 'service'; method: string; args?: any[]; } declare const newServiceProxy: ServiceProxyFactory; export default newServiceProxy;