from .clients.factory import (
    create_postgres_client,
    get_postgres_client,
    create_elasticsearch_client,
    get_elasticsearch_client,
    create_doris_client,
    get_doris_client,
)
from .clients.postgresql import PostgresClient, ensure_pg_database_exists

try:
    from .clients.doris import ensure_doris_database_exists
except ImportError:  # pragma: no cover
    ensure_doris_database_exists = None  # type: ignore[assignment]
from .query import QueryBuilder, QuerySet
from .query.operators import *
from .schema import (
    SchemaBuilder,
    TableDef,
    ColumnDef,
    IndexDef,
    ForeignKeyDef,
    table_to_sqlalchemy,
    table_to_sqlalchemy_doris,
    table_defs_to_metadata,
    _map_col_type,
    _map_col_type_doris,
)

__all__ = [
    "PostgresClient",
    "create_postgres_client",
    "get_postgres_client",
    "create_elasticsearch_client",
    "get_elasticsearch_client",
    "create_doris_client",
    "get_doris_client",
    "ensure_pg_database_exists",
    "ensure_doris_database_exists",
    "QueryBuilder",
    "QuerySet",
    "SchemaBuilder",
    "TableDef",
    "ColumnDef",
    "IndexDef",
    "ForeignKeyDef",
    "table_to_sqlalchemy",
    "table_to_sqlalchemy_doris",
    "table_defs_to_metadata",
    "_map_col_type",
    "_map_col_type_doris",
]
