/**
 * JSI BINDINGS DO NOT WORK WHEN CONNECTED TO THE CHROME DEBUGGER
 * Use flipper to debug your RN apps from now on
 */
/**
 * Object returned by SQL Query executions {
 *  status: 0 or undefined for correct execution, 1 for error
 *  insertId: Represent the auto-generated row id if applicable
 *  rowsAffected: Number of affected rows if result of a update query
 *  message: if status === 1, here you will find error description
 *  rows: if status is undefined or 0 this object will contain the query results
 * }
 *
 * @interface QueryResult
 */
interface QueryResult {
    status?: 0 | 1;
    insertId?: number;
    rowsAffected: number;
    message?: string;
    rows?: {
        /** Raw array with all dataset */
        _array: any[];
        /** The lengh of the dataset */
        length: number;
        /** A convenience function to acess the index based the row object
         * @param idx the row index
         * @returns the row structure identified by column names
         */
        item: (idx: number) => any;
    };
}
interface IConnectionOptions {
    name: string;
    location?: string;
}
interface IDBConnection {
    executeSql: (sql: string, args: any[], ok: (res: QueryResult) => void, fail: (msg: string) => void) => void;
    close: (ok: (res: any) => void, fail: (msg: string) => void) => void;
}
export declare const openDatabase: (options: IConnectionOptions, ok: (db: IDBConnection) => void, fail: (msg: string) => void) => void;
export {};
