from _typeshed import Incomplete
from typing import Any as _Any

from ...sql import expression, sqltypes

def Any(other, arrexpr, operator=...): ...
def All(other, arrexpr, operator=...): ...

class array(expression.ClauseList, expression.ColumnElement[_Any]):
    __visit_name__: str
    stringify_dialect: str
    inherit_cache: bool
    type: _Any
    def __init__(self, clauses, **kw) -> None: ...
    def self_group(self, against: Incomplete | None = None): ...

CONTAINS: _Any
CONTAINED_BY: _Any
OVERLAP: _Any

class ARRAY(sqltypes.ARRAY):
    class Comparator(sqltypes.ARRAY.Comparator[_Any]):
        def contains(self, other, **kwargs): ...
        def contained_by(self, other): ...
        def overlap(self, other): ...
    comparator_factory: _Any
    item_type: _Any
    as_tuple: _Any
    dimensions: _Any
    zero_indexes: _Any
    def __init__(
        self, item_type, as_tuple: bool = False, dimensions: Incomplete | None = None, zero_indexes: bool = False
    ) -> None: ...
    @property
    def hashable(self): ...
    @property
    def python_type(self): ...
    def compare_values(self, x, y): ...
    def bind_expression(self, bindvalue): ...
    def bind_processor(self, dialect): ...
    def result_processor(self, dialect, coltype): ...
