from typing import Any
from typing import Optional

from ... import types as sqltypes
from ...sql import functions as sqlfunc

class HSTORE(sqltypes.Indexable, sqltypes.Concatenable, sqltypes.TypeEngine):
    __visit_name__: str = ...
    hashable: bool = ...
    text_type: Any = ...
    def __init__(self, text_type: Optional[Any] = ...) -> None: ...
    class Comparator(
        sqltypes.Indexable.Comparator, sqltypes.Concatenable.Comparator
    ):
        def has_key(self, other: Any): ...
        def has_all(self, other: Any): ...
        def has_any(self, other: Any): ...
        def contains(self, other: Any, **kwargs: Any): ...
        def contained_by(self, other: Any): ...
        def defined(self, key: Any): ...
        def delete(self, key: Any): ...
        def slice(self, array: Any): ...
        def keys(self): ...
        def vals(self): ...
        def array(self): ...
        def matrix(self): ...
    comparator_factory: Any = ...
    def bind_processor(self, dialect: Any): ...
    def result_processor(self, dialect: Any, coltype: Any): ...

class hstore(sqlfunc.GenericFunction):
    type: Any = ...
    name: str = ...

class _HStoreDefinedFunction(sqlfunc.GenericFunction):
    type: Any = ...
    name: str = ...

class _HStoreDeleteFunction(sqlfunc.GenericFunction):
    type: Any = ...
    name: str = ...

class _HStoreSliceFunction(sqlfunc.GenericFunction):
    type: Any = ...
    name: str = ...

class _HStoreKeysFunction(sqlfunc.GenericFunction):
    type: Any = ...
    name: str = ...

class _HStoreValsFunction(sqlfunc.GenericFunction):
    type: Any = ...
    name: str = ...

class _HStoreArrayFunction(sqlfunc.GenericFunction):
    type: Any = ...
    name: str = ...

class _HStoreMatrixFunction(sqlfunc.GenericFunction):
    type: Any = ...
    name: str = ...
