import { clContext as nodenCLContext, KernelParams } from 'nodencl'; import { ClJobs, JobCB, JobID } from '../clJobQueue'; export declare abstract class ProcessImpl { protected readonly name: string; protected readonly width: number; protected readonly height: number; readonly kernel: string; readonly programName: string; readonly globalWorkItems = 0; constructor(name: string, width: number, height: number, kernel: string, programName: string); abstract init(): Promise; getName(): string; getNumBytesRGBA(): number; getGlobalWorkItems(): Uint32Array; abstract getKernelParams(params: KernelParams): Promise; abstract releaseRefs(): void; } export default class ImageProcess { private readonly clContext; private readonly processImpl; protected readonly clJobs: ClJobs; private program; constructor(clContext: nodenCLContext, processImpl: ProcessImpl, clJobs: ClJobs); init(): Promise; run(params: KernelParams, id: JobID, cb: JobCB): Promise; finish(): void; }