# Auto generated by 'inv collect-airflow'
from airfly._vendor.airflow.models.baseoperator import BaseOperator
from airfly._vendor.airflow.models.skipmixin import SkipMixin


class BaseSQLOperator(BaseOperator):
    conn_id: "str | None"
    database: "str | None"
    hook_params: "dict | None"
    retry_on_failure: "bool"


class SQLExecuteQueryOperator(BaseSQLOperator):
    sql: "str | list[str]"
    autocommit: "bool"
    parameters: "Mapping | Iterable | None"
    handler: "Callable[[Any], Any]"
    conn_id: "str | None"
    database: "str | None"
    split_statements: "bool | None"
    return_last: "bool"
    show_return_value_in_logs: "bool"


class SQLCheckOperator(BaseSQLOperator):
    sql: "str"
    conn_id: "str | None"
    database: "str | None"
    parameters: "Iterable | Mapping[str, Any] | None"


class SQLColumnCheckOperator(BaseSQLOperator):
    table: "str"
    column_mapping: "dict[str, dict[str, Any]]"
    partition_clause: "str | None"
    conn_id: "str | None"
    database: "str | None"
    accept_none: "bool"


class SQLTableCheckOperator(BaseSQLOperator):
    table: "str"
    checks: "dict[str, dict[str, Any]]"
    partition_clause: "str | None"
    conn_id: "str | None"
    database: "str | None"


class SQLValueCheckOperator(BaseSQLOperator):
    sql: "str"
    pass_value: "Any"
    tolerance: "Any"
    conn_id: "str | None"
    database: "str | None"


class SQLIntervalCheckOperator(BaseSQLOperator):
    table: "str"
    metrics_thresholds: "dict[str, int]"
    date_filter_column: "str | None"
    days_back: "SupportsAbs[int]"
    ratio_formula: "str | None"
    ignore_zero: "bool"
    conn_id: "str | None"
    database: "str | None"


class SQLThresholdCheckOperator(BaseSQLOperator):
    sql: "str"
    min_threshold: "Any"
    max_threshold: "Any"
    conn_id: "str | None"
    database: "str | None"


class BranchSQLOperator(BaseSQLOperator, SkipMixin):
    sql: "str"
    follow_task_ids_if_true: "list[str]"
    follow_task_ids_if_false: "list[str]"
    conn_id: "str"
    database: "str | None"
    parameters: "Iterable | Mapping[str, Any] | None"
