export interface SqlExecuteData {
    sql: string;
    bindParams?: any[];
}
export declare function random(): number;
export declare abstract class SqlApiABC {
    protected dbName: string;
    protected dbSchema: string[];
    protected db: any;
    protected schemaInstalled: boolean;
    private openInProgressPromise;
    protected constructor(dbName: string, dbSchema: string[]);
    open(): Promise<void>;
    abstract isOpen(): Promise<boolean>;
    abstract close(): Promise<void>;
    execute(executeData: SqlExecuteData[]): Promise<void>;
    query(executeData: SqlExecuteData): Promise<any[]>;
    protected abstract _openDb(): Promise<void>;
    protected abstract transaction(executeData: SqlExecuteData[], isQuery: boolean): Promise<any[] | null>;
    protected installSchema(): Promise<void>;
}
