// IWYU pragma: private, include "nvim/ops.h"
#define DEFINE_FUNC_ATTRIBUTES
#include "nvim/func_attr.h"
#undef DEFINE_FUNC_ATTRIBUTES
#ifndef DLLEXPORT
#  ifdef MSWIN
#    define DLLEXPORT __declspec(dllexport)
#  else
#    define DLLEXPORT
#  endif
#endif
DLLEXPORT int get_op_type(int char1, int char2);
DLLEXPORT int op_on_lines(int op);
DLLEXPORT int op_is_change(int op);
DLLEXPORT int get_op_char(int optype);
DLLEXPORT int get_extra_op_char(int optype);
DLLEXPORT void op_shift(oparg_T *oap, bool curs_top, int amount);
DLLEXPORT void shift_line(bool left, bool round, int amount, int call_changed_bytes);
DLLEXPORT int op_delete(oparg_T *oap);
DLLEXPORT void op_tilde(oparg_T *oap);
DLLEXPORT bool swapchar(int op_type, pos_T *pos) FUNC_ATTR_NONNULL_ARG(2);
DLLEXPORT void op_insert(oparg_T *oap, int count1);
DLLEXPORT int op_change(oparg_T *oap);
DLLEXPORT void adjust_cursor_eol(void);
DLLEXPORT char *skip_comment(char *line, bool process, bool include_space, bool *is_comment);
DLLEXPORT int do_join(size_t count, bool insert_space, bool save_undo, bool use_formatoptions, bool setmark);
DLLEXPORT bool reset_lbr(void);
DLLEXPORT void restore_lbr(bool lbr_saved);
DLLEXPORT void block_prep(oparg_T *oap, struct block_def *bdp, linenr_T lnum, bool is_del);
DLLEXPORT void charwise_block_prep(pos_T start, pos_T end, struct block_def *bdp, linenr_T lnum, bool inclusive);
DLLEXPORT void op_addsub(oparg_T *oap, linenr_T Prenum1, bool g_cmd);
DLLEXPORT bool do_addsub(int op_type, pos_T *pos, int length, linenr_T Prenum1);
DLLEXPORT void clear_oparg(oparg_T *oap);
DLLEXPORT void cursor_pos_info(dict_T *dict);
DLLEXPORT const char *did_set_operatorfunc(optset_T *args FUNC_ATTR_UNUSED);
DLLEXPORT void free_operatorfunc_option(void);
DLLEXPORT bool set_ref_in_opfunc(int copyID);
DLLEXPORT void do_pending_operator(cmdarg_T *cap, int old_col, bool gui_yank);
DLLEXPORT bcount_t get_region_bytecount(buf_T *buf, linenr_T start_lnum, linenr_T end_lnum, colnr_T start_col, colnr_T end_col);
#include "nvim/func_attr.h"
