from typing import Any, Optional

from django.db.backends.base.base import BaseDatabaseWrapper as BaseDatabaseWrapper

def wrap_oracle_errors() -> None: ...

class _UninitializedOperatorsDescriptor:
    def __get__(self, instance: Any, cls: Optional[Any] = ...): ...

class DatabaseWrapper(BaseDatabaseWrapper):
    vendor: str = ...
    display_name: str = ...
    data_types: Any = ...
    data_type_check_constraints: Any = ...
    operators: Any = ...
    pattern_esc: str = ...
    Database: Any = ...
    SchemaEditorClass: Any = ...
    client_class: Any = ...
    creation_class: Any = ...
    features_class: Any = ...
    introspection_class: Any = ...
    ops_class: Any = ...
    validation_class: Any = ...
    def __init__(self, *args: Any, **kwargs: Any) -> None: ...
    def get_connection_params(self): ...
    def get_new_connection(self, conn_params: Any): ...
    pattern_ops: Any = ...
    def init_connection_state(self) -> None: ...
    def create_cursor(self, name: Optional[Any] = ...): ...
    def check_constraints(self, table_names: Optional[Any] = ...) -> None: ...
    def is_usable(self): ...
    def cx_oracle_version(self): ...
    def oracle_version(self): ...

class OracleParam:
    force_bytes: Any = ...
    input_size: Any = ...
    def __init__(self, param: Any, cursor: Any, strings_only: bool = ...) -> None: ...

class VariableWrapper:
    var: Any = ...
    def __init__(self, var: Any) -> None: ...
    def bind_parameter(self, cursor: Any): ...
    def __getattr__(self, key: Any): ...
    def __setattr__(self, key: Any, value: Any) -> None: ...

class FormatStylePlaceholderCursor:
    charset: str = ...
    cursor: Any = ...
    def __init__(self, connection: Any) -> None: ...
    def execute(self, query: Any, params: Optional[Any] = ...): ...
    def executemany(self, query: Any, params: Optional[Any] = ...): ...
    def close(self) -> None: ...
    def var(self, *args: Any): ...
    def arrayvar(self, *args: Any): ...
    def __getattr__(self, attr: Any): ...
    def __iter__(self) -> Any: ...
