import { DatabaseConfig } from "../definitions/database-config";
import { DatabaseResult } from "../definitions/database-definition";
import { WebSqlInterface, WebSqlObjectInterface, WebSqlTransactionInterface } from "../definitions/websql-interface";
import { BaseDatabaseAdapter } from "./base-database.adapter";
/**
 * WARNING: Only for test app
 * Because WebSQL will no longer be implemented:
 * https://dev.w3.org/html5/webdatabase/
 *
 * Adapter for https://dev.w3.org/html5/webdatabase/
 *
 * Example usage:
 *
 * `new WebSqlDatabaseAdapter(this);`
 *
 * PS: 'this' is instance Browser, with method 'openDatabase'
 * @export
 * @class WebSqlDatabaseAdapter
 * @implements {DatabaseCreatorContract}
 */
export declare class WebSqlDatabaseAdapter extends BaseDatabaseAdapter<WebSqlObjectInterface> {
    private _creator;
    constructor(_creator: WebSqlInterface);
    protected createDatabaseNative(config: DatabaseConfig): Promise<WebSqlObjectInterface>;
    protected convertToExecuteSql(databaseNative: WebSqlObjectInterface): (sql: string, values: any) => Promise<DatabaseResult>;
    protected convertToTransaction(databaseNative: WebSqlObjectInterface): (fn: (transaction: WebSqlTransactionInterface) => void) => Promise<any>;
    protected convertToSqlBatch(databaseNative: WebSqlObjectInterface): (sqlStatements: Array<(string | string[] | any)>) => Promise<DatabaseResult[]>;
    protected executeSql(transaction: WebSqlTransactionInterface, sql: string, values: any): Promise<DatabaseResult>;
    protected ignoreExecuteSql(sql: string, values: any): Promise<DatabaseResult>;
    protected batch(database: WebSqlObjectInterface, sqlStatements: Array<string | string[] | any>, runInTransaction: boolean): Promise<DatabaseResult[]>;
    protected executeBatchs(databaseNative: WebSqlObjectInterface, batchs: Array<{
        sql: string;
        params: any[];
    }>, runInTransaction: boolean): Promise<DatabaseResult[]>;
    protected transaction(databaseNative: WebSqlObjectInterface): Promise<WebSqlTransactionInterface>;
}
