import { DataSource } from "typeorm";
import * as oracledb from "oracledb";
export declare class Procedure {
    protected connection: DataSource | oracledb.Connection;
    protected name: string;
    private inputs;
    private outputs;
    protected orderedParameters: any[];
    constructor(connection: DataSource | oracledb.Connection);
    execute(): Promise<Outputs>;
    executeOracle(): Promise<Outputs>;
    executeDataSource(): Promise<Outputs>;
    private getData;
    private getDataFromCursor;
    private get bindings();
    private get fields();
    private get parameters();
    get procedure(): string;
}
interface Inputs {
    [key: string]: IBinding;
}
export interface Outputs {
    [key: string]: any;
}
export interface Fields extends Inputs, Outputs {
}
interface IBinding {
    dir: oracledb.BindDirection;
    val: any;
    type: oracledb.DataType;
}
export {};
