import { Ops, type UOp } from '../ops.ts'; import { Renderer } from '../renderer/index.ts'; import { Allocator, type BufferSpec, Compiled, Compiler, Program, type ProgramCallArgs } from './allocator.ts'; import { DType } from '../dtype.ts'; import { MemoryView } from '../helpers/memoryview.ts'; type PyUOp = [Ops, DType | undefined, number[], any]; export declare class PythonProgram extends Program { uops: PyUOp[]; static init: (name: string, lib: Uint8Array) => PythonProgram; call: (bufs: MemoryView[], { global_size, local_size, vals }: ProgramCallArgs, wait?: boolean) => number | undefined; } export declare class PythonRenderer extends Renderer { device: string; constructor(); render: (name: string, uops: UOp[]) => string; } export declare class PythonCompiler extends Compiler { compile: (src: string) => Uint8Array; } export declare class PythonAllocator extends Allocator { _alloc: (size: number, options: BufferSpec) => MemoryView; _copyin: (dest: MemoryView, src: MemoryView) => undefined; _copyout: (dest: MemoryView, src: MemoryView) => void; _free: (opaque: MemoryView, options: BufferSpec) => void; } export declare class JS extends Compiled { constructor(device: string); } export {};