import { SQLParam } from './Database';
import { DB2Error } from './DB2Error';
import { ODBCResult } from './ODBCResult';
export declare class ODBCStatement {
    private constructor();
    prepareSync(sql: string): boolean;
    closeSync(closeOption: number): true;
    execute(params: SQLParam[], cb: (err: DB2Error, result?: ODBCResult, outparams?: Array<null | number | boolean | string> | null) => void): void;
    execute(cb: (err: DB2Error, result?: ODBCResult, outparams?: Array<null | number | boolean | string> | null) => void): void;
    execute(params?: SQLParam[]): Promise<[
        ODBCResult,
        Array<null | number | boolean | string>
    ] | ODBCResult>;
    executeSync(params?: SQLParam[]): [ODBCResult, Array<null | number | boolean | string>] | ODBCResult | null;
    executeDirect(sql: string, cb: (err: DB2Error | null, result?: ODBCResult) => void): null;
    executeDirect(sql: string): Promise<ODBCResult>;
    executeNonQuery(params: SQLParam[], cb: (err: DB2Error | null, res?: number) => void): null;
    executeNonQuery(cb: (err: DB2Error | null, res?: number) => void): null;
    executeNonQuery(params?: SQLParam[]): Promise<number>;
    executeNonQuerySync(params: SQLParam[]): null | number;
    prepare(sql: string, cb: (err: DB2Error | null) => void): null;
    prepare(sql: string): Promise<true>;
    bind(params: SQLParam[], cb: (err: DB2Error | null) => void): void;
    bind(cb: (err: DB2Error | null) => void): void;
    bind(params?: SQLParam[]): Promise<true>;
    bindSync(params: SQLParam[]): boolean;
    setAttr(attr: number, value: number | null | string, cb: (err: DB2Error | null) => void): null;
    setAttr(attr: number, value: number | null | string): Promise<true>;
    setAttrSync(attr: number, value: number | null | string): boolean;
    close(closeOption: number, cb: (err: DB2Error | null) => void): void;
    close(cb: (err: DB2Error | null) => void): void;
    close(closeOption?: number): Promise<false>;
}
