from __future__ import annotations from datetime import datetime from typing import Any, Callable, Literal from . import DataType, MemoryPool, Scalar, _PandasConvertible class Expression: ... class ScalarAggregateOptions: ... class CastOptions: def __init__( self, target_type: DataType | None = None, allow_int_overflow: bool | None = None, allow_time_truncate: bool | None = None, allow_time_overflow: bool | None = None, allow_decimal_truncate: bool | None = None, allow_float_truncate: bool | None = None, allow_invalid_utf8: bool | None = None, ) -> None: ... def max( # noqa: A001 array: _PandasConvertible, /, *, skip_nulls: bool = True, min_count: int = 1, options: ScalarAggregateOptions | None = None, memory_pool: MemoryPool | None = None, ) -> Scalar: ... def min( # noqa: A001 array: _PandasConvertible, /, *, skip_nulls: bool = True, min_count: int = 1, options: ScalarAggregateOptions | None = None, memory_pool: MemoryPool | None = None, ) -> Scalar: ... def utf8_length( strings: _PandasConvertible, /, *, memory_pool: MemoryPool | None = None ) -> _PandasConvertible: ... def register_scalar_function( func: Callable, function_name: str, function_doc: dict[Literal["summary", "description"], str], in_types: dict[str, DataType], out_type: DataType, func_registry: Any | None = None, ) -> None: ... def call_function( function_name: str, target: list[_PandasConvertible] ) -> _PandasConvertible: ... def assume_timezone( timestamps: _PandasConvertible | Scalar | datetime, /, timezone: str, *, ambiguous: Literal["raise", "earliest", "latest"] = "raise", nonexistent: Literal["raise", "earliest", "latest"] = "raise", options: Any | None = None, memory_pool: MemoryPool | None = None, ) -> _PandasConvertible: ...