import { DataType, TensorInfo } from '@tensorflow/tfjs-core';
export declare enum PixelsOpType {
    FROM_PIXELS = 0,
    DRAW = 1
}
export interface WebGPUProgram {
    atomic?: boolean;
    subgroups?: boolean;
    subgroupBuiltins?: boolean;
    dispatch: [number, number, number];
    dispatchLayout: {
        x: number[];
        y?: number[];
        z?: number[];
    };
    outputComponent?: number;
    outputShape: number[];
    pixelsOpType?: PixelsOpType;
    shaderKey: string;
    size?: boolean;
    uniforms?: string;
    variableNames: string[];
    variableComponents?: number[];
    workgroupSize: [number, number, number];
    workPerThread?: number;
    pipeline?: GPUComputePipeline | Promise<GPUComputePipeline>;
    getUserCode: () => string;
}
export declare const compileProgram: (device: GPUDevice, program: WebGPUProgram, inputsData: InputInfo[], output: TensorInfo, parallelCompilation: boolean) => GPUComputePipeline | Promise<GPUComputePipeline>;
interface InputInfo {
    dtype: DataType;
    shape: number[];
    name: string;
}
export declare function getStartHeaderString(useGlobalIndex: boolean, program: WebGPUProgram): string;
export {};
