import { SQLParam, SQLQuery } from './Database';
import { DB2Error } from './DB2Error';
import { ODBCResult, SQLResults } from './ODBCResult';
import { ODBCStatement } from './ODBCStatement';
export declare class ODBCConnection {
    loginTimeout: number;
    connectTimeout: number;
    connected: boolean;
    systemNaming: boolean;
    private constructor();
    open(connStr: string, cb: (err?: DB2Error) => void): ODBCConnection;
    openSync(connStr: string): true;
    close(cb: (err?: Error) => void): undefined;
    closeSync(): true;
    createDbSync(dbName: string, codeSet: string | null, mode: string | null): boolean;
    dropDbSync(dbName: string): boolean;
    createStatement(cb: (err: DB2Error, odbcStatement: ODBCStatement) => void): void;
    createStatementSync(): ODBCStatement;
    query(query: string, params: SQLParam[], cb: (err: null | DB2Error, res: null | ODBCResult, outputParam: SQLResults) => void): void;
    query(query: string | SQLQuery, cb: (err: null | DB2Error, res: null | ODBCResult, outputParam: SQLResults) => void): void;
    querySync(query: string, params?: SQLParam[]): ODBCResult | [ODBCResult | null, SQLResults | undefined];
    tables(catalog: string | null, schema: string | null, table: string | null, type: string | null, cb: (err: null | DB2Error, res: null | ODBCResult, outputParam: SQLResults) => void): void;
    columns(catalog: string | null, schema: string | null, table: string | null, column: string | null, cb: (err: null | DB2Error, res: null | ODBCResult, outputParam: SQLResults) => void): void;
    beginTransactionSync(): boolean;
    beginTransaction(cb: (err?: DB2Error) => void): void;
    endTransactionSync(rollback: boolean): boolean;
    endTransaction(rollback: boolean, cb: (err?: DB2Error) => void): void;
    setIsolationLevel(isolationLevel?: number): boolean;
    getInfoSync(infotype: number, infolen: number): false | null | string | number;
    getInfo(infotype: number, infolen: number, cb: (err: DB2Error | null, info: null | string | number) => void): void;
    getTypeInfoSync(datatype: number): ODBCResult;
    getTypeInfo(datatype: number, cb: (err: DB2Error | null, res: ODBCResult | null) => void): void;
    getFunctionsSync(functionId: number): false | number;
    getFunctionsSync(functionId: 0): false | number[];
    getFunctions(functionId: number, cb: (err: DB2Error | null, value: number | null) => void): void;
    getFunctions(functionId: 0, cb: (err: DB2Error | null, value: number[] | null) => void): void;
    setAttrSync(attr: number, value: number | null | string): boolean;
    setAttr(attr: number, value: number | null | string, cb: (err: DB2Error | null, res?: true) => void): void;
}
