import { InferenceSession } from 'onnxruntime-web';
import { Provider } from './Provider';
import { RGBColor32 } from '../helpers/image';
export type NeuralModelInitializer = () => Promise<void>;
declare abstract class NeuralModel {
    private readonly model;
    private readonly provider;
    private url;
    protected loading: boolean;
    protected session: InferenceSession;
    constructor(model?: string, provider?: Provider, url?: string);
    initialize(): Promise<void>;
    createSrc(input: HTMLCanvasElement | HTMLImageElement | HTMLVideoElement | ImageData, id?: string): HTMLCanvasElement | HTMLVideoElement;
    prepareUri(url: string): void;
    initWasmPath(): Promise<void>;
    initWasm(): Promise<void>;
    init(): Promise<void>;
    abstract predictFromImage(input: HTMLCanvasElement | HTMLImageElement, dstCanvas?: HTMLCanvasElement): unknown;
    protected abstract predict(rgb: RGBColor32 | Uint8Array, modelConfigParam?: Record<string, any>): any;
}
export default NeuralModel;
