from typing import Any

from sympy.polys.domains.gaussiandomains import GaussianIntegerRing, GaussianRationalField
from sympy.utilities import public

@public
def construct_domain(
    obj, **args
) -> (
    tuple[Any | GaussianRationalField | GaussianIntegerRing, dict[Any, Any | int]]
    | tuple[Any | GaussianRationalField | GaussianIntegerRing, list[Any | int] | list[Any] | Any]
    | tuple[Any | GaussianRationalField | GaussianIntegerRing, Any | int]
): ...
