# -*- coding: utf-8 -*-
# :Project:   pglast — DO NOT EDIT: type stubs automatically extracted from ddl.py
# :Author:    Lele Gaifax <lele@metapensiero.it>
# :License:   GNU General Public License version 3 or later
# :Copyright: © 2017-2026 Lele Gaifax
#

from typing import Any, ClassVar

from .. import ast, enums
from ..stream import RawStream
from . import IntEnumPrinter

def access_priv(node: ast.AccessPriv, output: RawStream) -> None: ...

OBJECT_NAMES: Any

def alter_collation_stmt(node: ast.AlterCollationStmt, output: RawStream) -> None: ...

def alter_database_stmt(node: ast.AlterDatabaseStmt, output: RawStream) -> None: ...

def alter_database_set_stmt(node: ast.AlterDatabaseSetStmt, output: RawStream) -> None: ...

def alter_extension_stmt(node: ast.AlterExtensionStmt, output: RawStream) -> None: ...

def alter_extension_stmt_def_elem(node: ast.DefElem, output: RawStream) -> None: ...

def alter_extension_contents_stmt(node: ast.AlterExtensionContentsStmt, output: RawStream) -> None: ...

def alter_enum_stmt(node: ast.AlterEnumStmt, output: RawStream) -> None: ...

def alter_default_privileges_stmt(node: ast.AlterDefaultPrivilegesStmt, output: RawStream) -> None: ...

def alter_function_stmt(node: ast.AlterFunctionStmt, output: RawStream) -> None: ...

def alter_object_schema_stmt(node: ast.AlterObjectSchemaStmt, output: RawStream) -> None: ...

def alter_operator_stmt(node: ast.AlterOperatorStmt, output: RawStream) -> None: ...

def alter_operator_stmt_def_elem(node: ast.DefElem, output: RawStream) -> None: ...

def alter_op_family_stmt(node: ast.AlterOpFamilyStmt, output: RawStream) -> None: ...

def alter_owner_stmt(node: ast.AlterOwnerStmt, output: RawStream) -> None: ...

def alter_policy_stmt(node: ast.AlterPolicyStmt, output: RawStream) -> None: ...

def alter_role_stmt(node: ast.AlterRoleStmt, output: RawStream) -> None: ...

def alter_seq_stmt(node: ast.AlterSeqStmt, output: RawStream) -> None: ...

def alter_tablespace_options_stmt(node: ast.AlterTableSpaceOptionsStmt, output: RawStream) -> None: ...

def alter_table_stmt(node: ast.AlterTableStmt, output: RawStream) -> None: ...

def alter_def_elem(node: ast.Node, output: RawStream) -> None: ...

def range_var(node: ast.RangeVar, output: RawStream) -> None: ...

class AlterTableTypePrinter(IntEnumPrinter[enums.AlterTableType]):
    enum: ClassVar[type[enums.AlterTableType]]
    def AT_AddColumn(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_AddConstraint(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_AddInherit(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_AddOf(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_AlterColumnType(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_AlterConstraint(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_AttachPartition(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_ChangeOwner(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_ClusterOn(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_ColumnDefault(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DetachPartition(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DetachPartitionFinalize(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DisableRowSecurity(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DisableTrig(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DropCluster(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DropColumn(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DropConstraint(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DropInherit(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DropNotNull(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DropOf(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DropOids(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_EnableRowSecurity(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_EnableTrig(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_EnableTrigAll(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_ForceRowSecurity(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_SetCompression(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_ReplicaIdentity(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_ResetOptions(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_ResetRelOptions(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_SetNotNull(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_SetRelOptions(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_SetStatistics(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_SetStorage(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_SetUnLogged(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_SetLogged(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_SetOptions(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_ValidateConstraint(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_AlterColumnGenericOptions(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_GenericOptions(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_SetTableSpace(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DropExpression(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_AddIdentity(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DropIdentity(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_NoForceRowSecurity(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_EnableRule(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DisableRule(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_EnableReplicaRule(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DisableTrigUser(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_EnableReplicaTrig(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_EnableAlwaysTrig(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_DisableTrigAll(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_SetIdentity(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_SetAccessMethod(self, node: ast.Node, output: RawStream) -> None: ...
    def AT_SetExpression(self, node: ast.Node, output: RawStream) -> None: ...


alter_table_type_printer: AlterTableTypePrinter

def alter_table_cmd(node: ast.AlterTableCmd, output: RawStream) -> None: ...

def alter_table_cmd_def_elem(node: ast.DefElem, output: RawStream) -> None: ...

def alter_table_move_all_stmt(node: ast.AlterTableMoveAllStmt, output: RawStream) -> None: ...

class AlterTSConfigTypePrinter(IntEnumPrinter[enums.AlterTSConfigType]):
    enum: ClassVar[type[enums.AlterTSConfigType]]
    def print_simple_name(self, node: ast.Node, output: RawStream) -> None: ...
    def print_simple_list(self, nodes: Any, output: RawStream) -> None: ...
    def ALTER_TSCONFIG_ADD_MAPPING(self, node: ast.Node, output: RawStream) -> None: ...
    def ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN(self, node: ast.Node, output: RawStream) -> None: ...
    def ALTER_TSCONFIG_REPLACE_DICT(self, node: ast.Node, output: RawStream) -> None: ...
    def ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN(self, node: ast.Node, output: RawStream) -> None: ...
    def ALTER_TSCONFIG_DROP_MAPPING(self, node: ast.Node, output: RawStream) -> None: ...


alter_ts_config_type_printer: AlterTSConfigTypePrinter

def alter_ts_configuration_stmt(node: ast.AlterTSConfigurationStmt, output: RawStream) -> None: ...

def alter_ts_dictionary_stmt(node: ast.AlterTSDictionaryStmt, output: RawStream) -> None: ...

def alter_stats_stmt(node: ast.AlterStatsStmt, output: RawStream) -> None: ...

class AlterSubscriptionTypePrinter(IntEnumPrinter[enums.AlterSubscriptionType]):
    enum: ClassVar[type[enums.AlterSubscriptionType]]
    def ALTER_SUBSCRIPTION_OPTIONS(self, node: ast.Node, output: RawStream) -> None: ...
    def ALTER_SUBSCRIPTION_CONNECTION(self, node: ast.Node, output: RawStream) -> None: ...
    def ALTER_SUBSCRIPTION_SET_PUBLICATION(self, node: ast.Node, output: RawStream) -> None: ...
    def ALTER_SUBSCRIPTION_ADD_PUBLICATION(self, node: ast.Node, output: RawStream) -> None: ...
    def ALTER_SUBSCRIPTION_DROP_PUBLICATION(self, node: ast.Node, output: RawStream) -> None: ...
    def ALTER_SUBSCRIPTION_REFRESH(self, node: ast.Node, output: RawStream) -> None: ...
    def ALTER_SUBSCRIPTION_ENABLED(self, node: ast.Node, output: RawStream) -> None: ...
    def ALTER_SUBSCRIPTION_SKIP(self, node: ast.Node, output: RawStream) -> None: ...


alter_subscription_type_printer: AlterSubscriptionTypePrinter

def alter_subscription_stmt(node: ast.AlterSubscriptionStmt, output: RawStream) -> None: ...

class AlterPublicationActionPrinter(IntEnumPrinter[enums.AlterPublicationAction]):
    enum: ClassVar[type[enums.AlterPublicationAction]]
    def AP_AddObjects(self, node: ast.Node, output: RawStream) -> None: ...
    def AP_DropObjects(self, node: ast.Node, output: RawStream) -> None: ...
    def AP_SetObjects(self, node: ast.Node, output: RawStream) -> None: ...


alter_publication_action_printer: AlterPublicationActionPrinter

def alter_publication_stmt(node: ast.AlterPublicationStmt, output: RawStream) -> None: ...

def alter_fdw_stmt(node: ast.AlterFdwStmt, output: RawStream) -> None: ...

def alter_fdw_stmt_def_elem(node: ast.DefElem, output: RawStream) -> None: ...

def alter_foreign_server_stmt(node: ast.AlterForeignServerStmt, output: RawStream) -> None: ...

def alter_user_mapping_stmt(node: ast.AlterUserMappingStmt, output: RawStream) -> None: ...

def alter_role_set_stmt(node: ast.AlterRoleSetStmt, output: RawStream) -> None: ...

def alter_domain_stmt(node: ast.AlterDomainStmt, output: RawStream) -> None: ...

def alter_event_trig_stmt(node: ast.AlterEventTrigStmt, output: RawStream) -> None: ...

def alter_type_stmt(node: ast.AlterTypeStmt, output: RawStream) -> None: ...

def at_alter_constraint(node: ast.ATAlterConstraint, output: RawStream) -> None: ...

def check_point_stmt(node: ast.CheckPointStmt, output: RawStream) -> None: ...

def cluster_stmt(node: ast.ClusterStmt, output: RawStream) -> None: ...

def column_def(node: ast.ColumnDef, output: RawStream) -> None: ...

def comment_stmt(node: ast.CommentStmt, output: RawStream) -> None: ...

def composite_type_stmt(node: ast.CompositeTypeStmt, output: RawStream) -> None: ...

def composite_type_stmt_range_var(node: ast.RangeVar, output: RawStream) -> None: ...

class ConstrTypePrinter(IntEnumPrinter[enums.ConstrType]):
    enum: ClassVar[type[enums.ConstrType]]
    def CONSTR_NULL(self, node: ast.Node, output: RawStream) -> None: ...
    def CONSTR_NOTNULL(self, node: ast.Node, output: RawStream) -> None: ...
    def CONSTR_DEFAULT(self, node: ast.Node, output: RawStream) -> None: ...
    def CONSTR_IDENTITY(self, node: ast.Node, output: RawStream) -> None: ...
    def CONSTR_GENERATED(self, node: ast.Node, output: RawStream) -> None: ...
    def CONSTR_CHECK(self, node: ast.Node, output: RawStream) -> None: ...
    def CONSTR_PRIMARY(self, node: ast.Node, output: RawStream) -> None: ...
    def CONSTR_UNIQUE(self, node: ast.Node, output: RawStream) -> None: ...
    def CONSTR_EXCLUSION(self, node: ast.Node, output: RawStream) -> None: ...
    def CONSTR_FOREIGN(self, node: ast.Node, output: RawStream) -> None: ...
    def CONSTR_ATTR_DEFERRABLE(self, node: ast.Node, output: RawStream) -> None: ...
    def CONSTR_ATTR_NOT_DEFERRABLE(self, node: ast.Node, output: RawStream) -> None: ...
    def CONSTR_ATTR_DEFERRED(self, node: ast.Node, output: RawStream) -> None: ...
    def CONSTR_ATTR_IMMEDIATE(self, node: ast.Node, output: RawStream) -> None: ...
    def CONSTR_ATTR_ENFORCED(self, node: ast.Node, output: RawStream) -> None: ...
    def CONSTR_ATTR_NOT_ENFORCED(self, node: ast.Node, output: RawStream) -> None: ...


constr_type_printer: ConstrTypePrinter

def constraint(node: ast.Constraint, output: RawStream) -> None: ...

def create_am_stmt(node: ast.CreateAmStmt, output: RawStream) -> None: ...

def create_db_stmt(node: ast.CreatedbStmt, output: RawStream) -> None: ...

def create_db_stmt_def_elem(node: ast.DefElem, output: RawStream) -> None: ...

def create_cast_stmt(node: ast.CreateCastStmt, output: RawStream) -> None: ...

def create_conversion_stmt(node: ast.CreateConversionStmt, output: RawStream) -> None: ...

def create_domain_stmt(node: ast.CreateDomainStmt, output: RawStream) -> None: ...

def create_enum_stmt(node: ast.CreateEnumStmt, output: RawStream) -> None: ...

def create_event_trig_stmt(node: ast.CreateEventTrigStmt, output: RawStream) -> None: ...

def create_event_trig_stmt_def_elem(node: ast.DefElem, output: RawStream) -> None: ...

def create_extension_stmt(node: ast.CreateExtensionStmt, output: RawStream) -> None: ...

def create_extension_stmt_def_elem(node: ast.DefElem, output: RawStream) -> None: ...

def create_fdw_stmt(node: ast.CreateFdwStmt, output: RawStream) -> None: ...

def create_fdw_stmt_def_elem(node: ast.DefElem, output: RawStream) -> None: ...

def create_foreign_server_stmt(node: ast.CreateForeignServerStmt, output: RawStream) -> None: ...

def create_foreign_table_stmt(node: ast.CreateForeignTableStmt, output: RawStream) -> None: ...

def create_foreign_table_stmt_def_elem(node: ast.DefElem, output: RawStream) -> None: ...

def create_function_stmt(node: ast.CreateFunctionStmt, output: RawStream) -> None: ...

def create_function_option(node: ast.DefElem, output: RawStream) -> None: ...

def create_opclass_stmt(node: ast.CreateOpClassStmt, output: RawStream) -> None: ...

def create_opclass_item(node: ast.CreateOpClassItem, output: RawStream) -> None: ...

def create_op_family_stmt(node: ast.CreateOpFamilyStmt, output: RawStream) -> None: ...

def create_plang_stmt(node: ast.CreatePLangStmt, output: RawStream) -> None: ...

def create_policy_stmt(node: ast.CreatePolicyStmt, output: RawStream) -> None: ...

def create_publication_stmt(node: ast.CreatePublicationStmt, output: RawStream) -> None: ...

def create_range_stmt(node: ast.CreateRangeStmt, output: RawStream) -> None: ...

class RoleStmtTypePrinter(IntEnumPrinter[enums.RoleStmtType]):
    enum: ClassVar[type[enums.RoleStmtType]]
    def ROLESTMT_ROLE(self, node: ast.Node, output: RawStream) -> None: ...
    def ROLESTMT_USER(self, node: ast.Node, output: RawStream) -> None: ...
    def ROLESTMT_GROUP(self, node: ast.Node, output: RawStream) -> None: ...


role_stmt_type_printer: RoleStmtTypePrinter

def create_role_stmt(node: ast.CreateRoleStmt, output: RawStream) -> None: ...

def create_or_alter_role_option(node: ast.DefElem, output: RawStream) -> None: ...

def create_schema_stmt(node: ast.CreateSchemaStmt, output: RawStream) -> None: ...

def create_seq_stmt(node: ast.CreateSeqStmt, output: RawStream) -> None: ...

def create_seq_stmt_def_elem(node: ast.DefElem, output: RawStream) -> None: ...

def create_stats_stmt(node: ast.CreateStatsStmt, output: RawStream) -> None: ...

def create_stmt(node: ast.CreateStmt, output: RawStream) -> None: ...

def create_table_as_stmt(node: ast.CreateTableAsStmt, output: RawStream) -> None: ...

def create_table_space_stmt(node: ast.CreateTableSpaceStmt, output: RawStream) -> None: ...

def create_trig_stmt(node: ast.CreateTrigStmt, output: RawStream) -> None: ...

def create_subscription_stmt_stmt_def_elem(node: ast.DefElem, output: RawStream) -> None: ...

def create_subscription_stmt(node: ast.CreateSubscriptionStmt, output: RawStream) -> None: ...

def current_of_expr(node: ast.CurrentOfExpr, output: RawStream) -> None: ...

def create_transform_stmt(node: ast.CreateTransformStmt, output: RawStream) -> None: ...

def close_portal_stmt(node: ast.ClosePortalStmt, output: RawStream) -> None: ...

def create_user_mapping_stmt(node: ast.CreateUserMappingStmt, output: RawStream) -> None: ...

def deallocate_stmt(node: ast.DeallocateStmt, output: RawStream) -> None: ...

def define_stmt(node: ast.DefineStmt, output: RawStream) -> None: ...

def def_elem(node: ast.DefElem, output: RawStream) -> None: ...

def define_stmt_def_elem(node: ast.DefElem, output: RawStream) -> None: ...

class DiscardModePrinter(IntEnumPrinter[enums.DiscardMode]):
    enum: ClassVar[type[enums.DiscardMode]]
    def DISCARD_ALL(self, node: ast.Node, output: RawStream) -> None: ...
    def DISCARD_PLANS(self, node: ast.Node, output: RawStream) -> None: ...
    def DISCARD_SEQUENCES(self, node: ast.Node, output: RawStream) -> None: ...
    def DISCARD_TEMP(self, node: ast.Node, output: RawStream) -> None: ...


discard_mode_printer: DiscardModePrinter

def discard_stmt(node: ast.DiscardStmt, output: RawStream) -> None: ...

def do_stmt(node: ast.DoStmt, output: RawStream) -> None: ...

def drop_db_stmt(node: ast.DropdbStmt, output: RawStream) -> None: ...

def drop_owned_stmt(node: ast.DropOwnedStmt, output: RawStream) -> None: ...

def drop_role_stmt(node: ast.DropRoleStmt, output: RawStream) -> None: ...

def drop_stmt(node: ast.DropStmt, output: RawStream) -> None: ...

def drop_subscription_stmt(node: ast.DropSubscriptionStmt, output: RawStream) -> None: ...

def drop_table_space_stmt(node: ast.DropTableSpaceStmt, output: RawStream) -> None: ...

def drop_user_mapping_stmt(node: ast.DropUserMappingStmt, output: RawStream) -> None: ...

def function_parameter(node: ast.FunctionParameter, output: RawStream) -> None: ...

def grant_stmt(node: ast.GrantStmt, output: RawStream) -> None: ...

def grant_role_stmt(node: ast.GrantRoleStmt, output: RawStream) -> None: ...

def grant_role_stmt_opt(node: ast.DefElem, output: RawStream) -> None: ...

def import_foreign_schema_stmt(node: ast.ImportForeignSchemaStmt, output: RawStream) -> None: ...

def index_stmt(node: ast.IndexStmt, output: RawStream) -> None: ...

def load_stmt(node: ast.LoadStmt, output: RawStream) -> None: ...

LOCK_MODE_NAMES: Any

def lock_stmt(node: ast.LockStmt, output: RawStream) -> None: ...

def notify_stmt(node: ast.NotifyStmt, output: RawStream) -> None: ...

def object_with_args(node: ast.ObjectWithArgs, output: RawStream) -> None: ...

def alter_object_schema_stmt_object_with_args(node: ast.ObjectWithArgs, output: RawStream) -> None: ...

def alter_operator_stmt_object_with_args(node: ast.ObjectWithArgs, output: RawStream) -> None: ...

def alter_owner_stmt_object_with_args(node: ast.ObjectWithArgs, output: RawStream) -> None: ...

def comment_stmt_object_with_args(node: ast.ObjectWithArgs, output: RawStream) -> None: ...

def drop_stmt_object_with_args(node: ast.ObjectWithArgs, output: RawStream) -> None: ...

def partition_bound_spec(node: ast.PartitionBoundSpec, output: RawStream) -> None: ...

def partition_cmd(node: ast.PartitionCmd, output: RawStream) -> None: ...

def partition_elem(node: ast.PartitionElem, output: RawStream) -> None: ...

def partition_range_datum(node: ast.PartitionRangeDatum, output: RawStream) -> None: ...

def partition_spec(node: ast.PartitionSpec, output: RawStream) -> None: ...

class PublicationObjSpecTypePrinter(IntEnumPrinter[enums.PublicationObjSpecType]):
    enum: ClassVar[type[enums.PublicationObjSpecType]]
    def PUBLICATIONOBJ_TABLE(self, node: ast.Node, output: RawStream) -> None: ...
    def PUBLICATIONOBJ_TABLES_IN_SCHEMA(self, node: ast.Node, output: RawStream) -> None: ...
    def PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA(self, node: ast.Node, output: RawStream) -> None: ...


publication_obj_spec_type_printer: PublicationObjSpecTypePrinter

def publication_obj_spec(node: ast.PublicationObjSpec, output: RawStream) -> None: ...

def publication_table(node: ast.PublicationTable, output: RawStream) -> None: ...

class ReindexKindPrinter(IntEnumPrinter[enums.ReindexObjectType]):
    enum: ClassVar[type[enums.ReindexObjectType]]
    def REINDEX_OBJECT_DATABASE(self, node: ast.Node, output: RawStream) -> None: ...
    def REINDEX_OBJECT_INDEX(self, node: ast.Node, output: RawStream) -> None: ...
    def REINDEX_OBJECT_TABLE(self, node: ast.Node, output: RawStream) -> None: ...
    def REINDEX_OBJECT_SCHEMA(self, node: ast.Node, output: RawStream) -> None: ...
    def REINDEX_OBJECT_SYSTEM(self, node: ast.Node, output: RawStream) -> None: ...


reindex_kind_printer: ReindexKindPrinter

def reindex_stmt(node: ast.ReindexStmt, output: RawStream) -> None: ...

def reindex_stmt_def_elem(node: ast.DefElem, output: RawStream) -> None: ...

def rename_stmt(node: ast.RenameStmt, output: RawStream) -> None: ...

def rename_stmt_range_var(node: ast.RangeVar, output: RawStream) -> None: ...

def replica_identity_stmt(node: ast.ReplicaIdentityStmt, output: RawStream) -> None: ...

def role_spec(node: ast.RoleSpec, output: RawStream) -> None: ...

EVENT_NAMES: Any

def rule_stmt_printer(node: ast.RuleStmt, output: RawStream) -> None: ...

def refresh_mat_view_stmt(node: ast.RefreshMatViewStmt, output: RawStream) -> None: ...

def reassign_owned_stmt(node: ast.ReassignOwnedStmt, output: RawStream) -> None: ...

def return_stmt(node: ast.ReturnStmt, output: RawStream) -> None: ...

def sec_label_stmt(node: ast.SecLabelStmt, output: RawStream) -> None: ...

def stats_elem(node: ast.StatsElem, output: RawStream) -> None: ...

def table_like_clause(node: ast.TableLikeClause, output: RawStream) -> None: ...

def trigger_transition(node: ast.TriggerTransition, output: RawStream) -> None: ...

def vacuum_stmt(node: ast.VacuumStmt, output: RawStream) -> None: ...

def vacuum_stmt_def_elem(node: ast.DefElem, output: RawStream) -> None: ...

def vacuum_relation(node: ast.VacuumRelation, output: RawStream) -> None: ...

def print_transaction_mode_list(node: ast.Node, output: RawStream) -> None: ...

class VariableSetKindPrinter(IntEnumPrinter[enums.VariableSetKind]):
    enum: ClassVar[type[enums.VariableSetKind]]
    def VAR_SET_VALUE(self, node: ast.Node, output: RawStream) -> None: ...
    def VAR_SET_DEFAULT(self, node: ast.Node, output: RawStream) -> None: ...
    def VAR_SET_CURRENT(self, node: ast.Node, output: RawStream) -> None: ...
    def VAR_SET_MULTI(self, node: ast.Node, output: RawStream) -> None: ...
    def VAR_RESET(self, node: ast.Node, output: RawStream) -> None: ...
    def VAR_RESET_ALL(self, node: ast.Node, output: RawStream) -> None: ...


variable_set_kind_printer: VariableSetKindPrinter

def variable_set_stmt(node: ast.VariableSetStmt, output: RawStream) -> None: ...

def variable_show_statement(node: ast.VariableShowStmt, output: RawStream) -> None: ...

class ViewCheckOptionPrinter(IntEnumPrinter[enums.ViewCheckOption]):
    enum: ClassVar[type[enums.ViewCheckOption]]
    def NO_CHECK_OPTION(self, node: ast.Node, output: RawStream) -> None: ...
    def LOCAL_CHECK_OPTION(self, node: ast.Node, output: RawStream) -> None: ...
    def CASCADED_CHECK_OPTION(self, node: ast.Node, output: RawStream) -> None: ...


view_check_option_printer: ViewCheckOptionPrinter

def view_stmt(node: ast.ViewStmt, output: RawStream) -> None: ...

def view_stmt_def_elem(node: ast.DefElem, output: RawStream) -> None: ...
