import { FetchMode } from './attributes';
import { CloseOption } from './Database';
import { DB2Error } from './DB2Error';
import { ColumnValue, RecordArray, RecordTuple } from './ODBC';
export type FileOption = 8 | 16 | 32;
export type RecordTupleOrArray = RecordArray | RecordTuple;
export type SQLResults = Array<RecordTupleOrArray>;
export interface FetchOptions {
    fetchMode: FetchMode;
}
export interface Column {
    index: number;
    SQL_DESC_NAME: string;
    SQL_DESC_TYPE_NAME: string;
    SQL_DESC_CONSIZE_TYPE: number;
    SQL_DESC_DISPLAY_SIZE: number;
    SQL_DESC_PRECISION: number;
    SQL_DESC_SCALE: number;
    SQL_DESC_LENGTH: number;
}
export declare class ODBCResult {
    private constructor();
    fetchMode: number;
    fetch(options: FetchOptions, cb: (err: null | DB2Error, data: RecordTupleOrArray | null) => void): void;
    fetch(cb: (err: null | DB2Error, data: RecordTupleOrArray | null) => void): void;
    fetch(options?: FetchOptions): Promise<RecordTupleOrArray | null>;
    fetchSync(options?: FetchOptions): null | RecordTupleOrArray;
    fetchAll(options: FetchOptions, cb: (err: DB2Error | null, data: SQLResults | null, colCount: number) => void): void;
    fetchAll(cb: (err: DB2Error | null, data: SQLResults | null, colCount: number) => void): void;
    fetchAll(options?: FetchOptions): Promise<SQLResults>;
    fetchAllSync(options?: FetchOptions): SQLResults;
    fetchN(count: number, options: FetchOptions, cb: (err: DB2Error | null, data: SQLResults | null) => void): void;
    fetchN(count: number, cb: (err: DB2Error | null, data: SQLResults | null) => void): void;
    fetchN(count: number, options?: FetchOptions): Promise<SQLResults>;
    fetchNSync(count: number, options?: FetchOptions): SQLResults;
    bindFileToCol(colNum: number, filePath: string, fileOption: FileOption, cb: (err: DB2Error | null) => void): void;
    bindFileToCol(colNum: number, filePath: string, cb: (err: DB2Error | null) => void): void;
    bindFileToCol(colNum: number, filePath: string, fileOption?: FileOption): Promise<true>;
    bindFileToColSync(colNum: number, filePath: string, fileOption?: FileOption): true;
    getData(colNum: number, dataSize: number, cb: (err: null | DB2Error, row: ColumnValue | null) => void): void;
    getData(colNum: number, cb: (err: null | DB2Error, row: ColumnValue | null) => void): void;
    getData(colNum?: number, dataSize?: number): Promise<ColumnValue>;
    getDataSync(colNum: number, dataSize: number): ColumnValue | null;
    close(closeOption: CloseOption, cb: (err: DB2Error | null) => void): void;
    close(cb: (err: DB2Error | null) => void): void;
    close(closeOption?: CloseOption): Promise<false>;
    closeSync(closeOption?: CloseOption): true;
    moreResultsSync(): boolean;
    getColumnNamesSync(): string[];
    getColumnMetadataSync(): Array<Column>;
    getSQLErrorSync(): DB2Error;
    getAffectedRowsSync(): number;
}
