import type { ApiInterface } from '../types/api';
import type { OnnxSessionConfig, OnnxSessionInfo, OnnxTensorData, OnnxInferenceResult, ValidateResult } from '../types/interfaces';
import { type TypedTensorData } from '../utils/tensorUtils';
export interface OnnxSessionRunFeeds {
    [name: string]: {
        type: OnnxTensorData['type'];
        data: TypedTensorData;
        dims: number[];
    };
}
export interface OnnxSessionRunOutputs {
    [name: string]: {
        type: OnnxTensorData['type'];
        data: TypedTensorData;
        dims: number[];
    };
}
export declare class OnnxSession {
    readonly sessionId: string;
    readonly inputNames: string[];
    readonly outputNames: string[];
    readonly inputTypes: OnnxTensorData['type'][];
    readonly outputTypes: OnnxTensorData['type'][];
    private api;
    constructor(api: ApiInterface, info: OnnxSessionInfo);
    run(feeds: OnnxSessionRunFeeds): Promise<OnnxSessionRunOutputs>;
    release(): Promise<void>;
}
export declare class OnnxInferenceService {
    private api;
    private sessions;
    constructor(api: ApiInterface);
    validateLibrary(): Promise<ValidateResult>;
    createSession(config: OnnxSessionConfig): Promise<OnnxSession>;
    run(sessionId: string, inputs: Record<string, OnnxTensorData>): Promise<OnnxInferenceResult>;
    releaseSession(sessionId: string): Promise<{
        released: boolean;
    }>;
    releaseAll(): Promise<void>;
}
//# sourceMappingURL=OnnxInferenceService.d.ts.map