import { ReduceBase } from '../../../ops/reduce-op';
import { Tensor } from '../../../tensor';
import { WebGLInferenceHandler } from '../inference-handler';
import { ProgramInfo, RunData, WebGLOperator } from '../types';
declare abstract class WebGLGenericReduce extends ReduceBase implements WebGLOperator {
    abstract getOps(inputs: Tensor[], axes: number[]): string[];
    run(inferenceHandler: WebGLInferenceHandler, inputs: Tensor[]): Tensor[];
    createProgramInfo(handler: WebGLInferenceHandler, inputs: Tensor[]): ProgramInfo;
    createRunData(handler: WebGLInferenceHandler, programInfo: ProgramInfo, inputs: Tensor[]): RunData;
}
export declare class WebGLReduceSum extends WebGLGenericReduce {
    getOps(_inputs: Tensor[]): string[];
}
export declare class WebGLReduceMean extends WebGLGenericReduce {
    getOps(inputs: Tensor[], axes: number[]): string[];
}
export declare class WebGLReduceMax extends WebGLGenericReduce {
    getOps(inputs: Tensor[], axes: number[]): string[];
}
export declare class WebGLReduceMin extends WebGLGenericReduce {
    getOps(inputs: Tensor[], axes: number[]): string[];
}
export declare class WebGLReduceProd extends WebGLGenericReduce {
    getOps(_inputs: Tensor[]): string[];
}
export declare class WebGLReduceLogSum extends WebGLGenericReduce {
    getOps(_inputs: Tensor[]): string[];
}
export declare class WebGLReduceSumSquare extends WebGLGenericReduce {
    getOps(_inputs: Tensor[]): string[];
}
export {};
