import io

from typing import Any

basestring = str
file = io.FileIO

def KEY_CTRL(key): ...
def addstr(*args): ...
def insstr(*args): ...

class ReloadException(Exception):
    start_pos: Any
    column_width_mode: Any
    column_gap: Any
    column_widths: Any
    search_str: Any
    def __init__(
        self, start_pos, column_width, column_gap, column_widths, search_str
    ) -> None: ...

class QuitException(Exception): ...

class Viewer:
    scr: Any
    data: Any
    info: Any
    header_offset_orig: int
    header: Any
    header_offset: Any
    num_data_columns: Any
    column_width_mode: Any
    column_gap: Any
    trunc_char: Any
    num_columns: int
    vis_columns: int
    init_search: Any
    modifier: Any
    def __init__(self, *args, **kwargs) -> None: ...
    def column_xw(self, x): ...
    def quit(self) -> None: ...
    def reload(self) -> None: ...
    def consume_modifier(self, default: int = ...): ...
    def down(self) -> None: ...
    def up(self) -> None: ...
    def left(self) -> None: ...
    def right(self) -> None: ...
    y: Any
    win_y: Any
    def page_down(self) -> None: ...
    def page_up(self) -> None: ...
    x: Any
    win_x: Any
    def page_right(self) -> None: ...
    def page_left(self) -> None: ...
    def mark(self) -> None: ...
    def goto_mark(self) -> None: ...
    def home(self) -> None: ...
    def goto_y(self, y) -> None: ...
    def goto_row(self) -> None: ...
    def goto_x(self, x) -> None: ...
    def goto_col(self) -> None: ...
    def goto_yx(self, y, x) -> None: ...
    def line_home(self) -> None: ...
    def line_end(self) -> None: ...
    def show_cell(self) -> None: ...
    def show_info(self): ...
    textpad: Any
    search_str: Any
    def search(self) -> None: ...
    def search_results(
        self, rev: bool = ..., look_in_cur: bool = ...
    ) -> None: ...
    def search_results_prev(
        self, rev: bool = ..., look_in_cur: bool = ...
    ) -> None: ...
    def help(self) -> None: ...
    def toggle_header(self) -> None: ...
    def column_gap_down(self) -> None: ...
    def column_gap_up(self) -> None: ...
    column_width: Any
    def column_width_all_down(self) -> None: ...
    def column_width_all_up(self) -> None: ...
    def column_width_down(self) -> None: ...
    def column_width_up(self) -> None: ...
    def sort_by_column_numeric(self): ...
    def sort_by_column_numeric_reverse(self): ...
    def sort_by_column(self) -> None: ...
    def sort_by_column_reverse(self) -> None: ...
    def sort_by_column_natural(self) -> None: ...
    def sort_by_column_natural_reverse(self) -> None: ...
    def sorted_nicely(self, ls, key, rev: bool = ...): ...
    def float_string_key(self, value): ...
    def toggle_column_width(self) -> None: ...
    def set_current_column_width(self) -> None: ...
    def yank_cell(self) -> None: ...
    keys: Any
    def define_keys(self) -> None: ...
    def run(self) -> None: ...
    def handle_keys(self) -> None: ...
    def handle_modifier(self, mod) -> None: ...
    def resize(self) -> None: ...
    def num_columns_fwd(self, x): ...
    def num_columns_rev(self, x): ...
    def recalculate_layout(self) -> None: ...
    def location_string(self, yp, xp): ...
    def display(self) -> None: ...
    def strpad(self, s, width): ...
    def hdrstr(self, x, width): ...
    def cellstr(self, y, x, width): ...
    def skip_to_row_change(self) -> None: ...
    def skip_to_row_change_reverse(self) -> None: ...
    def skip_to_col_change(self) -> None: ...
    def skip_to_col_change_reverse(self) -> None: ...

class TextBox:
    scr: Any
    data: Any
    title: Any
    tdata: Any
    hid_rows: int
    def __init__(self, scr, data: str = ..., title: str = ...) -> None: ...
    def __call__(self) -> None: ...
    handlers: Any
    def setup_handlers(self) -> None: ...
    def run(self) -> None: ...
    def handle_key(self, key) -> None: ...
    def close(self) -> None: ...
    def scroll_down(self) -> None: ...
    def scroll_up(self) -> None: ...
    def display(self) -> None: ...

def csv_sniff(data, enc): ...
def fix_newlines(data): ...
def adjust_space_delim(data, enc): ...
def process_data(
    data,
    enc: Any | None = ...,
    delim: Any | None = ...,
    quoting: Any | None = ...,
    quote_char=...,
): ...
def data_list_or_file(data): ...
def pad_data(d): ...
def readme(): ...
def detect_encoding(data: Any | None = ...): ...
def main(stdscr, *args, **kwargs) -> None: ...
def view(
    data,
    enc: Any | None = ...,
    start_pos=...,
    column_width: int = ...,
    column_gap: int = ...,
    trunc_char: str = ...,
    column_widths: Any | None = ...,
    search_str: Any | None = ...,
    double_width: bool = ...,
    delimiter: Any | None = ...,
    quoting: Any | None = ...,
    info: Any | None = ...,
    quote_char=...,
): ...
def parse_path(path): ...
