import { Kernel } from '../codegen/kernel.ts'; import { type Buffer, type Program } from '../device.ts'; import { type Metadata } from '../helpers/helpers.ts'; import { PatternMatcher, type UOp, type Variable } from '../ops.ts'; import { Estimates, type ProgramSpec, type Renderer } from '../renderer/index.ts'; import type { TinyJit } from './jit.ts'; import type { ScheduleItem } from './schedule.ts'; export declare const get_kernel: (renderer: Renderer, ast: UOp) => Promise; export declare class Runner { display_name: string; device: string; estimates: Estimates; first_run: boolean; constructor(display_name: string, device: string, estimates?: Estimates); get dev(): import("../device.ts").Compiled; exec: (rawbufs: Buffer[], var_vals?: Map) => Promise; call: (rawbufs: Buffer[], var_vals: Map, wait?: boolean) => Promise | number | undefined; } export declare class CompiledRunner extends Runner { _prg: Program; p: ProgramSpec; lib?: Uint8Array; static init: (p: ProgramSpec, lib?: Uint8Array) => Promise; __reduce__: () => (Uint8Array | ProgramSpec | undefined)[]; call: (rawbufs: Buffer[], var_vals: Map, wait?: boolean) => Promise; } export declare class ViewOp extends Runner { constructor(buf: Buffer); call: (rawbufs: Buffer[], var_vals: Map, wait?: boolean) => number; } export declare class BufferCopy extends Runner { constructor(total_sz: number, dest_device: string, src_device: string); copy: (dest: Buffer, src: Buffer) => Promise; call: (rawbufs: Buffer[], var_vals: Map, wait?: boolean) => Promise; } export declare class BufferXfer extends BufferCopy { copy: (dest: Buffer, src: Buffer) => Promise; } export declare const get_runner: (device: string, ast: UOp) => Promise; export declare class ExecItem { prg: Runner; bufs: (Buffer | undefined)[]; metadata?: Metadata[] | undefined; constructor(prg: Runner, bufs: (Buffer | undefined)[], metadata?: Metadata[] | undefined); run: (_var_vals?: Map, wait?: boolean, jit?: boolean, do_update_stats?: boolean) => Promise; } export declare const si_lowerer: PatternMatcher[], [Runner, Buffer[]] | Promise<[Runner, Buffer[]]>>; export declare const lower_schedule: (schedule: ScheduleItem[]) => AsyncGenerator; export declare const capturing: TinyJit[]; export declare const run_schedule: (schedule: ScheduleItem[], var_vals?: Map, do_update_stats?: boolean) => Promise;