import typing

import android.content
import android.database
import android.os
import android.util
import java
import java.chaquopy
import java.io
import java.lang
import java.util
import java.util.function
import java.util.regex

class SQLiteAbortException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteAccessPermException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteBindOrColumnIndexOutOfRangeException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteBlobTooBigException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteCantOpenDatabaseException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteClosable(java.io.Closeable):
    def __init__(self) -> None: ...
    def acquireReference(self) -> None: ...
    def close(self) -> None: ...
    def onAllReferencesReleased(self) -> None: ...
    def onAllReferencesReleasedFromContainer(self) -> None: ...
    def releaseReference(self) -> None: ...
    def releaseReferenceFromContainer(self) -> None: ...

class SQLiteConstraintException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteCursor(android.database.AbstractWindowedCursor):
    @typing.overload
    def __init__(self, driver: SQLiteCursorDriver, editTable: str | java.lang.String, query: SQLiteQuery, /) -> None: ...
    @typing.overload
    def __init__(self, db: SQLiteDatabase, driver: SQLiteCursorDriver, editTable: str | java.lang.String, query: SQLiteQuery, /) -> None: ...
    def close(self) -> None: ...
    def deactivate(self) -> None: ...
    def finalize(self) -> None: ...
    def getColumnIndex(self, columnName: str | java.lang.String, /) -> int: ...
    def getColumnNames(self) -> java.chaquopy.JavaArray[java.lang.String]: ...
    def getCount(self) -> int: ...
    def getDatabase(self) -> SQLiteDatabase: ...
    def onMove(self, oldPosition: int | java.jint | java.lang.Integer, newPosition: int | java.jint | java.lang.Integer, /) -> bool: ...
    def requery(self) -> bool: ...
    def setFillWindowForwardOnly(self, fillWindowForwardOnly: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setSelectionArguments(self, selectionArgs: java.chaquopy.JavaArray[java.lang.String], /) -> None: ...
    def setWindow(self, window: android.database.CursorWindow, /) -> None: ...

class SQLiteCursorDriver(java.lang.Object):
    def cursorClosed(self) -> None: ...
    def cursorDeactivated(self) -> None: ...
    def cursorRequeried(self, arg1: android.database.Cursor, /) -> None: ...
    def query(self, arg1: SQLiteDatabase.CursorFactory, arg2: java.chaquopy.JavaArray[java.lang.String], /) -> android.database.Cursor: ...
    def setBindArguments(self, arg1: java.chaquopy.JavaArray[java.lang.String], /) -> None: ...

class SQLiteDatabase(SQLiteClosable):
    CONFLICT_ABORT: typing.ClassVar[int] = ...
    CONFLICT_FAIL: typing.ClassVar[int] = ...
    CONFLICT_IGNORE: typing.ClassVar[int] = ...
    CONFLICT_NONE: typing.ClassVar[int] = ...
    CONFLICT_REPLACE: typing.ClassVar[int] = ...
    CONFLICT_ROLLBACK: typing.ClassVar[int] = ...
    CREATE_IF_NECESSARY: typing.ClassVar[int] = ...
    ENABLE_WRITE_AHEAD_LOGGING: typing.ClassVar[int] = ...
    JOURNAL_MODE_DELETE: typing.ClassVar[str] = ...
    JOURNAL_MODE_MEMORY: typing.ClassVar[str] = ...
    JOURNAL_MODE_OFF: typing.ClassVar[str] = ...
    JOURNAL_MODE_PERSIST: typing.ClassVar[str] = ...
    JOURNAL_MODE_TRUNCATE: typing.ClassVar[str] = ...
    JOURNAL_MODE_WAL: typing.ClassVar[str] = ...
    MAX_SQL_CACHE_SIZE: typing.ClassVar[int] = ...
    NO_LOCALIZED_COLLATORS: typing.ClassVar[int] = ...
    OPEN_READONLY: typing.ClassVar[int] = ...
    OPEN_READWRITE: typing.ClassVar[int] = ...
    SQLITE_MAX_LIKE_PATTERN_LENGTH: typing.ClassVar[int] = ...
    SYNC_MODE_EXTRA: typing.ClassVar[str] = ...
    SYNC_MODE_FULL: typing.ClassVar[str] = ...
    SYNC_MODE_NORMAL: typing.ClassVar[str] = ...
    SYNC_MODE_OFF: typing.ClassVar[str] = ...
    def beginTransaction(self) -> None: ...
    def beginTransactionNonExclusive(self) -> None: ...
    def beginTransactionReadOnly(self) -> None: ...
    def beginTransactionWithListener(self, transactionListener: SQLiteTransactionListener, /) -> None: ...
    def beginTransactionWithListenerNonExclusive(self, transactionListener: SQLiteTransactionListener, /) -> None: ...
    def beginTransactionWithListenerReadOnly(self, transactionListener: SQLiteTransactionListener, /) -> None: ...
    def compileStatement(self, sql: str | java.lang.String, /) -> SQLiteStatement: ...
    @staticmethod
    def create(factory: SQLiteDatabase.CursorFactory, /) -> SQLiteDatabase: ...
    @staticmethod
    def createInMemory(openParams: SQLiteDatabase.OpenParams, /) -> SQLiteDatabase: ...
    def createRawStatement(self, sql: str | java.lang.String, /) -> SQLiteRawStatement: ...
    def delete(self, table: str | java.lang.String, whereClause: str | java.lang.String, whereArgs: java.chaquopy.JavaArray[java.lang.String], /) -> int: ...
    @staticmethod
    def deleteDatabase(file: java.io.File, /) -> bool: ...
    def disableWriteAheadLogging(self) -> None: ...
    def enableWriteAheadLogging(self) -> bool: ...
    def endTransaction(self) -> None: ...
    def execPerConnectionSQL(self, sql: str | java.lang.String, bindArgs: java.chaquopy.JavaArray[java.lang.Object], /) -> None: ...
    @typing.overload
    def execSQL(self, sql: str | java.lang.String, /) -> None: ...
    @typing.overload
    def execSQL(self, sql: str | java.lang.String, bindArgs: java.chaquopy.JavaArray[java.lang.Object], /) -> None: ...
    def finalize(self) -> None: ...
    @staticmethod
    def findEditTable(tables: str | java.lang.String, /) -> str: ...
    def getAttachedDbs(self) -> java.util.List[android.util.Pair[java.lang.String, java.lang.String]] | None: ...
    def getLastChangedRowCount(self) -> int: ...
    def getLastInsertRowId(self) -> int: ...
    def getMaximumSize(self) -> int: ...
    def getPageSize(self) -> int: ...
    def getPath(self) -> str: ...
    def getSyncedTables(self) -> java.util.Map[java.lang.String, java.lang.String]: ...
    def getTotalChangedRowCount(self) -> int: ...
    def getVersion(self) -> int: ...
    def inTransaction(self) -> bool: ...
    def insert(self, table: str | java.lang.String, nullColumnHack: str | java.lang.String, values: android.content.ContentValues, /) -> int: ...
    def insertOrThrow(self, table: str | java.lang.String, nullColumnHack: str | java.lang.String, values: android.content.ContentValues, /) -> int: ...
    def insertWithOnConflict(self, table: str | java.lang.String, nullColumnHack: str | java.lang.String, initialValues: android.content.ContentValues, conflictAlgorithm: int | java.jint | java.lang.Integer, /) -> int: ...
    def isDatabaseIntegrityOk(self) -> bool: ...
    def isDbLockedByCurrentThread(self) -> bool: ...
    def isDbLockedByOtherThreads(self) -> bool: ...
    def isOpen(self) -> bool: ...
    def isReadOnly(self) -> bool: ...
    def isWriteAheadLoggingEnabled(self) -> bool: ...
    @typing.overload
    def markTableSyncable(self, table: str | java.lang.String, deletedTable: str | java.lang.String, /) -> None: ...
    @typing.overload
    def markTableSyncable(self, table: str | java.lang.String, foreignKey: str | java.lang.String, updateTable: str | java.lang.String, /) -> None: ...
    def needUpgrade(self, newVersion: int | java.jint | java.lang.Integer, /) -> bool: ...
    def onAllReferencesReleased(self) -> None: ...
    @typing.overload
    @staticmethod
    def openDatabase(path: java.io.File, openParams: SQLiteDatabase.OpenParams, /) -> SQLiteDatabase | None: ...
    @typing.overload
    @staticmethod
    def openDatabase(path: str | java.lang.String, factory: SQLiteDatabase.CursorFactory, flags: int | java.jint | java.lang.Integer, /) -> SQLiteDatabase | None: ...
    @typing.overload
    @staticmethod
    def openDatabase(path: str | java.lang.String, factory: SQLiteDatabase.CursorFactory, flags: int | java.jint | java.lang.Integer, errorHandler: android.database.DatabaseErrorHandler, /) -> SQLiteDatabase | None: ...
    @typing.overload
    @staticmethod
    def openOrCreateDatabase(file: java.io.File, factory: SQLiteDatabase.CursorFactory, /) -> SQLiteDatabase | None: ...
    @typing.overload
    @staticmethod
    def openOrCreateDatabase(path: str | java.lang.String, factory: SQLiteDatabase.CursorFactory, /) -> SQLiteDatabase | None: ...
    @typing.overload
    @staticmethod
    def openOrCreateDatabase(path: str | java.lang.String, factory: SQLiteDatabase.CursorFactory, errorHandler: android.database.DatabaseErrorHandler, /) -> SQLiteDatabase | None: ...
    @typing.overload
    def query(self, table: str | java.lang.String, columns: java.chaquopy.JavaArray[java.lang.String], selection: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], groupBy: str | java.lang.String, having: str | java.lang.String, orderBy: str | java.lang.String, /) -> android.database.Cursor | None: ...
    @typing.overload
    def query(self, table: str | java.lang.String, columns: java.chaquopy.JavaArray[java.lang.String], selection: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], groupBy: str | java.lang.String, having: str | java.lang.String, orderBy: str | java.lang.String, limit: str | java.lang.String, /) -> android.database.Cursor | None: ...
    @typing.overload
    def query(self, distinct: bool | java.jboolean | java.lang.Boolean, table: str | java.lang.String, columns: java.chaquopy.JavaArray[java.lang.String], selection: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], groupBy: str | java.lang.String, having: str | java.lang.String, orderBy: str | java.lang.String, limit: str | java.lang.String, /) -> android.database.Cursor | None: ...
    @typing.overload
    def query(self, distinct: bool | java.jboolean | java.lang.Boolean, table: str | java.lang.String, columns: java.chaquopy.JavaArray[java.lang.String], selection: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], groupBy: str | java.lang.String, having: str | java.lang.String, orderBy: str | java.lang.String, limit: str | java.lang.String, cancellationSignal: android.os.CancellationSignal, /) -> android.database.Cursor | None: ...
    @typing.overload
    def queryWithFactory(self, cursorFactory: SQLiteDatabase.CursorFactory, distinct: bool | java.jboolean | java.lang.Boolean, table: str | java.lang.String, columns: java.chaquopy.JavaArray[java.lang.String], selection: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], groupBy: str | java.lang.String, having: str | java.lang.String, orderBy: str | java.lang.String, limit: str | java.lang.String, /) -> android.database.Cursor | None: ...
    @typing.overload
    def queryWithFactory(self, cursorFactory: SQLiteDatabase.CursorFactory, distinct: bool | java.jboolean | java.lang.Boolean, table: str | java.lang.String, columns: java.chaquopy.JavaArray[java.lang.String], selection: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], groupBy: str | java.lang.String, having: str | java.lang.String, orderBy: str | java.lang.String, limit: str | java.lang.String, cancellationSignal: android.os.CancellationSignal, /) -> android.database.Cursor | None: ...
    @typing.overload
    def rawQuery(self, sql: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], /) -> android.database.Cursor: ...
    @typing.overload
    def rawQuery(self, sql: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], cancellationSignal: android.os.CancellationSignal, /) -> android.database.Cursor: ...
    @typing.overload
    def rawQueryWithFactory(self, cursorFactory: SQLiteDatabase.CursorFactory, sql: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], editTable: str | java.lang.String, /) -> android.database.Cursor | None: ...
    @typing.overload
    def rawQueryWithFactory(self, cursorFactory: SQLiteDatabase.CursorFactory, sql: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], editTable: str | java.lang.String, cancellationSignal: android.os.CancellationSignal, /) -> android.database.Cursor | None: ...
    @staticmethod
    def releaseMemory() -> int: ...
    def replace(self, table: str | java.lang.String, nullColumnHack: str | java.lang.String, initialValues: android.content.ContentValues, /) -> int: ...
    def replaceOrThrow(self, table: str | java.lang.String, nullColumnHack: str | java.lang.String, initialValues: android.content.ContentValues, /) -> int: ...
    def setCustomAggregateFunction(self, functionName: str | java.lang.String, aggregateFunction: java.util.function.BinaryOperator[java.lang.String], /) -> None: ...
    def setCustomScalarFunction(self, functionName: str | java.lang.String, scalarFunction: java.util.function.UnaryOperator[java.lang.String], /) -> None: ...
    def setForeignKeyConstraintsEnabled(self, enable: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setLocale(self, locale: java.util.Locale, /) -> None: ...
    def setLockingEnabled(self, lockingEnabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setMaxSqlCacheSize(self, cacheSize: int | java.jint | java.lang.Integer, /) -> None: ...
    def setMaximumSize(self, numBytes: int | java.jlong | java.lang.Long, /) -> int: ...
    def setPageSize(self, numBytes: int | java.jlong | java.lang.Long, /) -> None: ...
    def setTransactionSuccessful(self) -> None: ...
    def setVersion(self, version: int | java.jint | java.lang.Integer, /) -> None: ...
    def toString(self) -> str: ...
    def update(self, table: str | java.lang.String, values: android.content.ContentValues, whereClause: str | java.lang.String, whereArgs: java.chaquopy.JavaArray[java.lang.String], /) -> int: ...
    def updateWithOnConflict(self, table: str | java.lang.String, values: android.content.ContentValues, whereClause: str | java.lang.String, whereArgs: java.chaquopy.JavaArray[java.lang.String], conflictAlgorithm: int | java.jint | java.lang.Integer, /) -> int: ...
    def validateSql(self, sql: str | java.lang.String, cancellationSignal: android.os.CancellationSignal, /) -> None: ...
    def yieldIfContended(self) -> bool: ...
    @typing.overload
    def yieldIfContendedSafely(self) -> bool: ...
    @typing.overload
    def yieldIfContendedSafely(self, sleepAfterYieldDelay: int | java.jlong | java.lang.Long, /) -> bool: ...

    class OpenParams(java.lang.Object):
        def getCursorFactory(self) -> SQLiteDatabase.CursorFactory: ...
        def getErrorHandler(self) -> android.database.DatabaseErrorHandler: ...
        def getIdleConnectionTimeout(self) -> int: ...
        def getJournalMode(self) -> str: ...
        def getLookasideSlotCount(self) -> int: ...
        def getLookasideSlotSize(self) -> int: ...
        def getOpenFlags(self) -> int: ...
        def getSynchronousMode(self) -> str: ...

        class Builder(java.lang.Object):
            @typing.overload
            def __init__(self) -> None: ...
            @typing.overload
            def __init__(self, params: SQLiteDatabase.OpenParams, /) -> None: ...
            def addOpenFlags(self, openFlags: int | java.jint | java.lang.Integer, /) -> SQLiteDatabase.OpenParams.Builder: ...
            def build(self) -> SQLiteDatabase.OpenParams: ...
            def removeOpenFlags(self, openFlags: int | java.jint | java.lang.Integer, /) -> SQLiteDatabase.OpenParams.Builder: ...
            def setCursorFactory(self, cursorFactory: SQLiteDatabase.CursorFactory, /) -> SQLiteDatabase.OpenParams.Builder: ...
            def setErrorHandler(self, errorHandler: android.database.DatabaseErrorHandler, /) -> SQLiteDatabase.OpenParams.Builder: ...
            def setIdleConnectionTimeout(self, idleConnectionTimeoutMs: int | java.jlong | java.lang.Long, /) -> SQLiteDatabase.OpenParams.Builder: ...
            def setJournalMode(self, journalMode: str | java.lang.String, /) -> SQLiteDatabase.OpenParams.Builder: ...
            def setLookasideConfig(self, slotSize: int | java.jint | java.lang.Integer, slotCount: int | java.jint | java.lang.Integer, /) -> SQLiteDatabase.OpenParams.Builder: ...
            def setOpenFlags(self, openFlags: int | java.jint | java.lang.Integer, /) -> SQLiteDatabase.OpenParams.Builder: ...
            def setSynchronousMode(self, syncMode: str | java.lang.String, /) -> SQLiteDatabase.OpenParams.Builder: ...

    class CursorFactory(java.lang.Object):
        def newCursor(self, arg1: SQLiteDatabase, arg2: SQLiteCursorDriver, arg3: str | java.lang.String, arg4: SQLiteQuery, /) -> android.database.Cursor: ...

class SQLiteDatabaseCorruptException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteDatabaseLockedException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteDatatypeMismatchException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteDiskIOException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteDoneException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteException(android.database.SQLException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, cause: java.lang.Throwable, /) -> None: ...

class SQLiteFullException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteMisuseException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteOpenHelper(java.lang.AutoCloseable):
    @typing.overload
    def __init__(self, context: android.content.Context, name: str | java.lang.String, version: int | java.jint | java.lang.Integer, openParams: SQLiteDatabase.OpenParams, /) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, name: str | java.lang.String, factory: SQLiteDatabase.CursorFactory, version: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, context: android.content.Context, name: str | java.lang.String, factory: SQLiteDatabase.CursorFactory, version: int | java.jint | java.lang.Integer, errorHandler: android.database.DatabaseErrorHandler, /) -> None: ...
    def close(self) -> None: ...
    def getDatabaseName(self) -> str: ...
    def getReadableDatabase(self) -> SQLiteDatabase: ...
    def getWritableDatabase(self) -> SQLiteDatabase: ...
    def onConfigure(self, db: SQLiteDatabase, /) -> None: ...
    def onCreate(self, arg1: SQLiteDatabase, /) -> None: ...
    def onDowngrade(self, db: SQLiteDatabase, oldVersion: int | java.jint | java.lang.Integer, newVersion: int | java.jint | java.lang.Integer, /) -> None: ...
    def onOpen(self, db: SQLiteDatabase, /) -> None: ...
    def onUpgrade(self, arg1: SQLiteDatabase, arg2: int | java.jint | java.lang.Integer, arg3: int | java.jint | java.lang.Integer, /) -> None: ...
    def setIdleConnectionTimeout(self, idleConnectionTimeoutMs: int | java.jlong | java.lang.Long, /) -> None: ...
    def setLookasideConfig(self, slotSize: int | java.jint | java.lang.Integer, slotCount: int | java.jint | java.lang.Integer, /) -> None: ...
    def setOpenParams(self, openParams: SQLiteDatabase.OpenParams, /) -> None: ...
    def setWriteAheadLoggingEnabled(self, enabled: bool | java.jboolean | java.lang.Boolean, /) -> None: ...

class SQLiteOutOfMemoryException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteProgram(SQLiteClosable):
    def bindAllArgsAsStrings(self, bindArgs: java.chaquopy.JavaArray[java.lang.String], /) -> None: ...
    def bindBlob(self, index: int | java.jint | java.lang.Integer, value: java.chaquopy.JavaArrayJByte, /) -> None: ...
    def bindDouble(self, index: int | java.jint | java.lang.Integer, value: float | java.jdouble | java.lang.Double, /) -> None: ...
    def bindLong(self, index: int | java.jint | java.lang.Integer, value: int | java.jlong | java.lang.Long, /) -> None: ...
    def bindNull(self, index: int | java.jint | java.lang.Integer, /) -> None: ...
    def bindString(self, index: int | java.jint | java.lang.Integer, value: str | java.lang.String, /) -> None: ...
    def clearBindings(self) -> None: ...
    def getUniqueId(self) -> int: ...
    def onAllReferencesReleased(self) -> None: ...

class SQLiteQuery(SQLiteProgram):
    def toString(self) -> str: ...

class SQLiteQueryBuilder(java.lang.Object):
    def __init__(self) -> None: ...
    @staticmethod
    def appendColumns(s: java.lang.StringBuilder, columns: java.chaquopy.JavaArray[java.lang.String], /) -> None: ...
    def appendWhere(self, inWhere: java.lang.CharSequence, /) -> None: ...
    def appendWhereEscapeString(self, inWhere: str | java.lang.String, /) -> None: ...
    def appendWhereStandalone(self, inWhere: java.lang.CharSequence, /) -> None: ...
    @typing.overload
    def buildQuery(self, projectionIn: java.chaquopy.JavaArray[java.lang.String], selection: str | java.lang.String, groupBy: str | java.lang.String, having: str | java.lang.String, sortOrder: str | java.lang.String, limit: str | java.lang.String, /) -> str: ...
    @typing.overload
    def buildQuery(self, projectionIn: java.chaquopy.JavaArray[java.lang.String], selection: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], groupBy: str | java.lang.String, having: str | java.lang.String, sortOrder: str | java.lang.String, limit: str | java.lang.String, /) -> str: ...
    @staticmethod
    def buildQueryString(distinct: bool | java.jboolean | java.lang.Boolean, tables: str | java.lang.String, columns: java.chaquopy.JavaArray[java.lang.String], where: str | java.lang.String, groupBy: str | java.lang.String, having: str | java.lang.String, orderBy: str | java.lang.String, limit: str | java.lang.String, /) -> str: ...
    def buildUnionQuery(self, subQueries: java.chaquopy.JavaArray[java.lang.String], sortOrder: str | java.lang.String, limit: str | java.lang.String, /) -> str: ...
    @typing.overload
    def buildUnionSubQuery(self, typeDiscriminatorColumn: str | java.lang.String, unionColumns: java.chaquopy.JavaArray[java.lang.String], columnsPresentInTable: java.util.Set[java.lang.String], computedColumnsOffset: int | java.jint | java.lang.Integer, typeDiscriminatorValue: str | java.lang.String, selection: str | java.lang.String, groupBy: str | java.lang.String, having: str | java.lang.String, /) -> str: ...
    @typing.overload
    def buildUnionSubQuery(self, typeDiscriminatorColumn: str | java.lang.String, unionColumns: java.chaquopy.JavaArray[java.lang.String], columnsPresentInTable: java.util.Set[java.lang.String], computedColumnsOffset: int | java.jint | java.lang.Integer, typeDiscriminatorValue: str | java.lang.String, selection: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], groupBy: str | java.lang.String, having: str | java.lang.String, /) -> str: ...
    def delete(self, db: SQLiteDatabase, selection: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], /) -> int: ...
    def getCursorFactory(self) -> SQLiteDatabase.CursorFactory | None: ...
    def getProjectionGreylist(self) -> java.util.Collection[java.util.regex.Pattern] | None: ...
    def getProjectionMap(self) -> java.util.Map[java.lang.String, java.lang.String] | None: ...
    def getTables(self) -> str | None: ...
    def insert(self, db: SQLiteDatabase, values: android.content.ContentValues, /) -> int: ...
    def isDistinct(self) -> bool: ...
    def isStrict(self) -> bool: ...
    def isStrictColumns(self) -> bool: ...
    def isStrictGrammar(self) -> bool: ...
    @typing.overload
    def query(self, db: SQLiteDatabase, projectionIn: java.chaquopy.JavaArray[java.lang.String], selection: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], groupBy: str | java.lang.String, having: str | java.lang.String, sortOrder: str | java.lang.String, /) -> android.database.Cursor: ...
    @typing.overload
    def query(self, db: SQLiteDatabase, projectionIn: java.chaquopy.JavaArray[java.lang.String], selection: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], groupBy: str | java.lang.String, having: str | java.lang.String, sortOrder: str | java.lang.String, limit: str | java.lang.String, /) -> android.database.Cursor: ...
    @typing.overload
    def query(self, db: SQLiteDatabase, projectionIn: java.chaquopy.JavaArray[java.lang.String], selection: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], groupBy: str | java.lang.String, having: str | java.lang.String, sortOrder: str | java.lang.String, limit: str | java.lang.String, cancellationSignal: android.os.CancellationSignal, /) -> android.database.Cursor: ...
    def setCursorFactory(self, factory: SQLiteDatabase.CursorFactory, /) -> None: ...
    def setDistinct(self, distinct: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setProjectionGreylist(self, projectionGreylist: java.util.Collection[java.util.regex.Pattern], /) -> None: ...
    def setProjectionMap(self, columnMap: java.util.Map[java.lang.String, java.lang.String], /) -> None: ...
    def setStrict(self, strict: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setStrictColumns(self, strictColumns: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setStrictGrammar(self, strictGrammar: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setTables(self, inTables: str | java.lang.String, /) -> None: ...
    def update(self, db: SQLiteDatabase, values: android.content.ContentValues, selection: str | java.lang.String, selectionArgs: java.chaquopy.JavaArray[java.lang.String], /) -> int: ...

class SQLiteRawStatement(java.io.Closeable):
    SQLITE_DATA_TYPE_BLOB: typing.ClassVar[int] = ...
    SQLITE_DATA_TYPE_FLOAT: typing.ClassVar[int] = ...
    SQLITE_DATA_TYPE_INTEGER: typing.ClassVar[int] = ...
    SQLITE_DATA_TYPE_NULL: typing.ClassVar[int] = ...
    SQLITE_DATA_TYPE_TEXT: typing.ClassVar[int] = ...
    @typing.overload
    def bindBlob(self, parameterIndex: int | java.jint | java.lang.Integer, value: java.chaquopy.JavaArrayJByte, /) -> None: ...
    @typing.overload
    def bindBlob(self, parameterIndex: int | java.jint | java.lang.Integer, value: java.chaquopy.JavaArrayJByte, offset: int | java.jint | java.lang.Integer, length: int | java.jint | java.lang.Integer, /) -> None: ...
    def bindDouble(self, parameterIndex: int | java.jint | java.lang.Integer, value: float | java.jdouble | java.lang.Double, /) -> None: ...
    def bindInt(self, parameterIndex: int | java.jint | java.lang.Integer, value: int | java.jint | java.lang.Integer, /) -> None: ...
    def bindLong(self, parameterIndex: int | java.jint | java.lang.Integer, value: int | java.jlong | java.lang.Long, /) -> None: ...
    def bindNull(self, parameterIndex: int | java.jint | java.lang.Integer, /) -> None: ...
    def bindText(self, parameterIndex: int | java.jint | java.lang.Integer, value: str | java.lang.String, /) -> None: ...
    def clearBindings(self) -> None: ...
    def close(self) -> None: ...
    def getColumnBlob(self, columnIndex: int | java.jint | java.lang.Integer, /) -> java.chaquopy.JavaArrayJByte | None: ...
    def getColumnDouble(self, columnIndex: int | java.jint | java.lang.Integer, /) -> float: ...
    def getColumnInt(self, columnIndex: int | java.jint | java.lang.Integer, /) -> int: ...
    def getColumnLength(self, columnIndex: int | java.jint | java.lang.Integer, /) -> int: ...
    def getColumnLong(self, columnIndex: int | java.jint | java.lang.Integer, /) -> int: ...
    def getColumnName(self, columnIndex: int | java.jint | java.lang.Integer, /) -> str: ...
    def getColumnText(self, columnIndex: int | java.jint | java.lang.Integer, /) -> str: ...
    def getColumnType(self, columnIndex: int | java.jint | java.lang.Integer, /) -> int: ...
    def getParameterCount(self) -> int: ...
    def getParameterIndex(self, name: str | java.lang.String, /) -> int: ...
    def getParameterName(self, parameterIndex: int | java.jint | java.lang.Integer, /) -> str | None: ...
    def getResultColumnCount(self) -> int: ...
    def isOpen(self) -> bool: ...
    def readColumnBlob(self, columnIndex: int | java.jint | java.lang.Integer, buffer: java.chaquopy.JavaArrayJByte, offset: int | java.jint | java.lang.Integer, length: int | java.jint | java.lang.Integer, srcOffset: int | java.jint | java.lang.Integer, /) -> int: ...
    def reset(self) -> None: ...
    def step(self) -> bool: ...
    def toString(self) -> str: ...

class SQLiteReadOnlyDatabaseException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteStatement(SQLiteProgram):
    def execute(self) -> None: ...
    def executeInsert(self) -> int: ...
    def executeUpdateDelete(self) -> int: ...
    def simpleQueryForBlobFileDescriptor(self) -> android.os.ParcelFileDescriptor: ...
    def simpleQueryForLong(self) -> int: ...
    def simpleQueryForString(self) -> str: ...
    def toString(self) -> str: ...

class SQLiteTableLockedException(SQLiteException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, error: str | java.lang.String, /) -> None: ...

class SQLiteTransactionListener(java.lang.Object):
    def onBegin(self) -> None: ...
    def onCommit(self) -> None: ...
    def onRollback(self) -> None: ...
