# stdlib
import os
import pathlib
from typing import Any, Dict, Iterator, List, Optional, Tuple

# this package
from formate_js.enums import (
		BracePosition,
		ForceMultiLine,
		JsxMultiLineParens,
		JsxQuoteStyle,
		MemberSpacing,
		NamedTypeImportsExportsOrder,
		NewLineKind,
		NextControlFlowPosition,
		OperatorPosition,
		PreferHanging,
		QuoteProps,
		QuoteStyle,
		SameOrNextLinePosition,
		SemiColonOrComma,
		SemiColons,
		SortOrder,
		TrailingCommas,
		UseBraces,
		UseParentheses
		)

PathLike = str | pathlib.Path | os.PathLike

class ConfigurationBuilder:
	def deno(self) -> ConfigurationBuilder: ...
	def line_width(self, value: int) -> ConfigurationBuilder: ...
	def use_tabs(self, value: bool) -> ConfigurationBuilder: ...
	def indent_width(self, value: int) -> ConfigurationBuilder: ...
	def new_line_kind(self, value: NewLineKind) -> ConfigurationBuilder: ...
	def quote_style(self, value: QuoteStyle) -> ConfigurationBuilder: ...
	def jsx_quote_style(self, value: JsxQuoteStyle) -> ConfigurationBuilder: ...
	def jsx_multi_line_parens(self, value: JsxMultiLineParens) -> ConfigurationBuilder: ...
	def jsx_force_new_lines_surrounding_content(self, value: bool) -> ConfigurationBuilder: ...
	def jsx_bracket_position(self, value: SameOrNextLinePosition) -> ConfigurationBuilder: ...
	def jsx_opening_element_bracket_position(self, value: SameOrNextLinePosition) -> ConfigurationBuilder: ...
	def jsx_self_closing_element_bracket_position(self, value: SameOrNextLinePosition) -> ConfigurationBuilder: ...
	def semi_colons(self, value: SemiColons) -> ConfigurationBuilder: ...
	def prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def quote_props(self, value: QuoteProps) -> ConfigurationBuilder: ...
	def brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def next_control_flow_position(self, value: NextControlFlowPosition) -> ConfigurationBuilder: ...
	def operator_position(self, value: OperatorPosition) -> ConfigurationBuilder: ...
	def single_body_position(self, value: SameOrNextLinePosition) -> ConfigurationBuilder: ...
	def file_indent_level(self, value: int) -> ConfigurationBuilder: ...
	def trailing_commas(self, value: TrailingCommas) -> ConfigurationBuilder: ...
	def use_braces(self, value: UseBraces) -> ConfigurationBuilder: ...
	def prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...

	def binary_expression_space_surrounding_bitwise_and_arithmetic_operator(
			self,
			value: bool,
			) -> ConfigurationBuilder: ...

	def comment_line_force_space_after_slashes(self, value: bool) -> ConfigurationBuilder: ...
	def construct_signature_space_after_new_keyword(self, value: bool) -> ConfigurationBuilder: ...
	def constructor_space_before_parentheses(self, value: bool) -> ConfigurationBuilder: ...
	def constructor_type_space_after_new_keyword(self, value: bool) -> ConfigurationBuilder: ...
	def do_while_statement_space_after_while_keyword(self, value: bool) -> ConfigurationBuilder: ...
	def export_declaration_space_surrounding_named_exports(self, value: bool) -> ConfigurationBuilder: ...
	def for_statement_space_after_for_keyword(self, value: bool) -> ConfigurationBuilder: ...
	def for_statement_space_after_semi_colons(self, value: bool) -> ConfigurationBuilder: ...
	def for_in_statement_space_after_for_keyword(self, value: bool) -> ConfigurationBuilder: ...
	def for_of_statement_space_after_for_keyword(self, value: bool) -> ConfigurationBuilder: ...
	def function_declaration_space_before_parentheses(self, value: bool) -> ConfigurationBuilder: ...
	def function_expression_space_before_parentheses(self, value: bool) -> ConfigurationBuilder: ...
	def function_expression_space_after_function_keyword(self, value: bool) -> ConfigurationBuilder: ...
	def get_accessor_space_before_parentheses(self, value: bool) -> ConfigurationBuilder: ...
	def if_statement_space_after_if_keyword(self, value: bool) -> ConfigurationBuilder: ...
	def import_declaration_space_surrounding_named_imports(self, value: bool) -> ConfigurationBuilder: ...
	def jsx_expression_container_space_surrounding_expression(self, value: bool) -> ConfigurationBuilder: ...
	def jsx_self_closing_element_space_before_slash(self, value: bool) -> ConfigurationBuilder: ...
	def object_expression_space_surrounding_properties(self, value: bool) -> ConfigurationBuilder: ...
	def object_pattern_space_surrounding_properties(self, value: bool) -> ConfigurationBuilder: ...
	def method_space_before_parentheses(self, value: bool) -> ConfigurationBuilder: ...
	def set_accessor_space_before_parentheses(self, value: bool) -> ConfigurationBuilder: ...
	def space_surrounding_properties(self, value: bool) -> ConfigurationBuilder: ...
	def tagged_template_space_before_literal(self, value: bool) -> ConfigurationBuilder: ...
	def type_annotation_space_before_colon(self, value: bool) -> ConfigurationBuilder: ...
	def type_assertion_space_before_expression(self, value: bool) -> ConfigurationBuilder: ...
	def type_literal_space_surrounding_properties(self, value: bool) -> ConfigurationBuilder: ...
	def while_statement_space_after_while_keyword(self, value: bool) -> ConfigurationBuilder: ...
	def space_around(self, value: bool) -> ConfigurationBuilder: ...
	def arrow_function_use_parentheses(self, value: UseParentheses) -> ConfigurationBuilder: ...
	def binary_expression_line_per_expression(self, value: bool) -> ConfigurationBuilder: ...
	def conditional_expression_line_per_expression(self, value: bool) -> ConfigurationBuilder: ...
	def member_expression_line_per_expression(self, value: bool) -> ConfigurationBuilder: ...
	def type_literal_separator_kind(self, value: SemiColonOrComma) -> ConfigurationBuilder: ...
	def type_literal_separator_kind_single_line(self, value: SemiColonOrComma) -> ConfigurationBuilder: ...
	def type_literal_separator_kind_multi_line(self, value: SemiColonOrComma) -> ConfigurationBuilder: ...
	def module_sort_import_declarations(self, value: SortOrder) -> ConfigurationBuilder: ...
	def module_sort_export_declarations(self, value: SortOrder) -> ConfigurationBuilder: ...
	def import_declaration_sort_named_imports(self, value: SortOrder) -> ConfigurationBuilder: ...

	def import_declaration_sort_type_only_imports(
			self,
			value: NamedTypeImportsExportsOrder,
			) -> ConfigurationBuilder: ...

	def export_declaration_sort_named_exports(self, value: SortOrder) -> ConfigurationBuilder: ...

	def export_declaration_sort_type_only_exports(
			self,
			value: NamedTypeImportsExportsOrder,
			) -> ConfigurationBuilder: ...

	def ignore_node_comment_text(self, value: str) -> ConfigurationBuilder: ...
	def ignore_file_comment_text(self, value: str) -> ConfigurationBuilder: ...
	def arrow_function_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def class_declaration_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def class_expression_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def constructor_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def do_while_statement_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def enum_declaration_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def for_statement_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def for_in_statement_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def for_of_statement_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def get_accessor_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def if_statement_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def interface_declaration_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def function_declaration_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def function_expression_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def method_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def module_declaration_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def set_accessor_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def static_block_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def switch_case_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def switch_statement_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def try_statement_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def while_statement_brace_position(self, value: BracePosition) -> ConfigurationBuilder: ...
	def arguments_prefer_hanging(self, value: PreferHanging) -> ConfigurationBuilder: ...
	def array_expression_prefer_hanging(self, value: PreferHanging) -> ConfigurationBuilder: ...
	def array_pattern_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def do_while_statement_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def export_declaration_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def extends_clause_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def for_in_statement_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def for_of_statement_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def for_statement_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def if_statement_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def implements_clause_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def import_declaration_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def jsx_attributes_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def object_expression_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def object_pattern_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def parameters_prefer_hanging(self, value: PreferHanging) -> ConfigurationBuilder: ...
	def sequence_expression_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def switch_statement_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def tuple_type_prefer_hanging(self, value: PreferHanging) -> ConfigurationBuilder: ...
	def type_literal_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def type_parameters_prefer_hanging(self, value: PreferHanging) -> ConfigurationBuilder: ...
	def union_and_intersection_type_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def variable_statement_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def while_statement_prefer_hanging(self, value: bool) -> ConfigurationBuilder: ...
	def export_declaration_force_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def import_declaration_force_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def export_declaration_force_multi_line(self, value: ForceMultiLine) -> ConfigurationBuilder: ...
	def import_declaration_force_multi_line(self, value: ForceMultiLine) -> ConfigurationBuilder: ...
	def enum_declaration_member_spacing(self, value: MemberSpacing) -> ConfigurationBuilder: ...
	def if_statement_next_control_flow_position(self, value: NextControlFlowPosition) -> ConfigurationBuilder: ...
	def try_statement_next_control_flow_position(self, value: NextControlFlowPosition) -> ConfigurationBuilder: ...

	def do_while_statement_next_control_flow_position(
			self,
			value: NextControlFlowPosition,
			) -> ConfigurationBuilder: ...

	def binary_expression_operator_position(self, value: OperatorPosition) -> ConfigurationBuilder: ...
	def conditional_expression_operator_position(self, value: OperatorPosition) -> ConfigurationBuilder: ...
	def conditional_type_operator_position(self, value: OperatorPosition) -> ConfigurationBuilder: ...
	def if_statement_single_body_position(self, value: SameOrNextLinePosition) -> ConfigurationBuilder: ...
	def for_statement_single_body_position(self, value: SameOrNextLinePosition) -> ConfigurationBuilder: ...
	def for_in_statement_single_body_position(self, value: SameOrNextLinePosition) -> ConfigurationBuilder: ...
	def for_of_statement_single_body_position(self, value: SameOrNextLinePosition) -> ConfigurationBuilder: ...
	def while_statement_single_body_position(self, value: SameOrNextLinePosition) -> ConfigurationBuilder: ...
	def arguments_trailing_commas(self, value: TrailingCommas) -> ConfigurationBuilder: ...
	def parameters_trailing_commas(self, value: TrailingCommas) -> ConfigurationBuilder: ...
	def array_expression_trailing_commas(self, value: TrailingCommas) -> ConfigurationBuilder: ...
	def array_pattern_trailing_commas(self, value: TrailingCommas) -> ConfigurationBuilder: ...
	def enum_declaration_trailing_commas(self, value: TrailingCommas) -> ConfigurationBuilder: ...
	def export_declaration_trailing_commas(self, value: TrailingCommas) -> ConfigurationBuilder: ...
	def import_declaration_trailing_commas(self, value: TrailingCommas) -> ConfigurationBuilder: ...
	def object_expression_trailing_commas(self, value: TrailingCommas) -> ConfigurationBuilder: ...
	def object_pattern_trailing_commas(self, value: TrailingCommas) -> ConfigurationBuilder: ...
	def tuple_type_trailing_commas(self, value: TrailingCommas) -> ConfigurationBuilder: ...
	def type_literal_trailing_commas(self, value: TrailingCommas) -> ConfigurationBuilder: ...
	def type_parameters_trailing_commas(self, value: TrailingCommas) -> ConfigurationBuilder: ...
	def if_statement_use_braces(self, value: UseBraces) -> ConfigurationBuilder: ...
	def for_statement_use_braces(self, value: UseBraces) -> ConfigurationBuilder: ...
	def for_in_statement_use_braces(self, value: UseBraces) -> ConfigurationBuilder: ...
	def for_of_statement_use_braces(self, value: UseBraces) -> ConfigurationBuilder: ...
	def while_statement_use_braces(self, value: UseBraces) -> ConfigurationBuilder: ...
	def array_expression_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def array_pattern_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def arguments_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def binary_expression_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def computed_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def conditional_expression_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def conditional_type_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def decorators_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def export_declaration_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def for_statement_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def import_declaration_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def jsx_attributes_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def jsx_element_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def mapped_type_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def member_expression_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def object_expression_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def object_pattern_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def parameters_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def parentheses_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def tuple_type_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def type_literal_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def type_parameters_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def union_and_intersection_type_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def variable_statement_prefer_single_line(self, value: bool) -> ConfigurationBuilder: ...
	def arguments_space_around(self, value: bool) -> ConfigurationBuilder: ...
	def array_expression_space_around(self, value: bool) -> ConfigurationBuilder: ...
	def array_pattern_space_around(self, value: bool) -> ConfigurationBuilder: ...
	def catch_clause_space_around(self, value: bool) -> ConfigurationBuilder: ...
	def do_while_statement_space_around(self, value: bool) -> ConfigurationBuilder: ...
	def for_in_statement_space_around(self, value: bool) -> ConfigurationBuilder: ...
	def for_of_statement_space_around(self, value: bool) -> ConfigurationBuilder: ...
	def for_statement_space_around(self, value: bool) -> ConfigurationBuilder: ...
	def if_statement_space_around(self, value: bool) -> ConfigurationBuilder: ...
	def parameters_space_around(self, value: bool) -> ConfigurationBuilder: ...
	def paren_expression_space_around(self, value: bool) -> ConfigurationBuilder: ...
	def switch_statement_space_around(self, value: bool) -> ConfigurationBuilder: ...
	def tuple_type_space_around(self, value: bool) -> ConfigurationBuilder: ...
	def while_statement_space_around(self, value: bool) -> ConfigurationBuilder: ...
	def build(self) -> Configuration: ...

class Configuration:
	indent_width: int
	line_width: int
	use_tabs: bool
	new_line_kind: NewLineKind
	quote_style: QuoteStyle
	quote_props: QuoteProps
	semi_colons: SemiColons
	file_indent_level: int
	arrow_function_use_parentheses: UseParentheses
	binary_expression_line_per_expression: bool
	conditional_expression_line_per_expression: bool
	jsx_quote_style: JsxQuoteStyle
	jsx_multi_line_parens: JsxMultiLineParens
	jsx_force_new_lines_surrounding_content: bool
	jsx_opening_element_bracket_position: SameOrNextLinePosition
	jsx_self_closing_element_bracket_position: SameOrNextLinePosition
	member_expression_line_per_expression: bool
	type_literal_separator_kind_single_line: SemiColonOrComma
	type_literal_separator_kind_multi_line: SemiColonOrComma
	module_sort_import_declarations: SortOrder
	module_sort_export_declarations: SortOrder
	import_declaration_sort_named_imports: SortOrder
	import_declaration_sort_type_only_imports: NamedTypeImportsExportsOrder
	export_declaration_sort_named_exports: SortOrder
	export_declaration_sort_type_only_exports: NamedTypeImportsExportsOrder
	ignore_node_comment_text: str
	ignore_file_comment_text: str
	arrow_function_brace_position: BracePosition
	class_declaration_brace_position: BracePosition
	class_expression_brace_position: BracePosition
	constructor_brace_position: BracePosition
	do_while_statement_brace_position: BracePosition
	enum_declaration_brace_position: BracePosition
	get_accessor_brace_position: BracePosition
	if_statement_brace_position: BracePosition
	interface_declaration_brace_position: BracePosition
	for_statement_brace_position: BracePosition
	for_in_statement_brace_position: BracePosition
	for_of_statement_brace_position: BracePosition
	function_declaration_brace_position: BracePosition
	function_expression_brace_position: BracePosition
	method_brace_position: BracePosition
	module_declaration_brace_position: BracePosition
	set_accessor_brace_position: BracePosition
	static_block_brace_position: BracePosition
	switch_case_brace_position: BracePosition
	switch_statement_brace_position: BracePosition
	try_statement_brace_position: BracePosition
	while_statement_brace_position: BracePosition
	arguments_prefer_hanging: PreferHanging
	array_expression_prefer_hanging: PreferHanging
	array_pattern_prefer_hanging: bool
	do_while_statement_prefer_hanging: bool
	export_declaration_prefer_hanging: bool
	extends_clause_prefer_hanging: bool
	for_statement_prefer_hanging: bool
	for_in_statement_prefer_hanging: bool
	for_of_statement_prefer_hanging: bool
	if_statement_prefer_hanging: bool
	implements_clause_prefer_hanging: bool
	import_declaration_prefer_hanging: bool
	jsx_attributes_prefer_hanging: bool
	object_expression_prefer_hanging: bool
	object_pattern_prefer_hanging: bool
	parameters_prefer_hanging: PreferHanging
	sequence_expression_prefer_hanging: bool
	switch_statement_prefer_hanging: bool
	tuple_type_prefer_hanging: PreferHanging
	type_literal_prefer_hanging: bool
	type_parameters_prefer_hanging: PreferHanging
	union_and_intersection_type_prefer_hanging: bool
	variable_statement_prefer_hanging: bool
	while_statement_prefer_hanging: bool
	enum_declaration_member_spacing: MemberSpacing
	if_statement_next_control_flow_position: NextControlFlowPosition
	try_statement_next_control_flow_position: NextControlFlowPosition
	do_while_statement_next_control_flow_position: NextControlFlowPosition
	binary_expression_operator_position: OperatorPosition
	conditional_expression_operator_position: OperatorPosition
	conditional_type_operator_position: OperatorPosition
	if_statement_single_body_position: SameOrNextLinePosition
	for_statement_single_body_position: SameOrNextLinePosition
	for_in_statement_single_body_position: SameOrNextLinePosition
	for_of_statement_single_body_position: SameOrNextLinePosition
	while_statement_single_body_position: SameOrNextLinePosition
	arguments_trailing_commas: TrailingCommas
	parameters_trailing_commas: TrailingCommas
	array_expression_trailing_commas: TrailingCommas
	array_pattern_trailing_commas: TrailingCommas
	enum_declaration_trailing_commas: TrailingCommas
	export_declaration_trailing_commas: TrailingCommas
	import_declaration_trailing_commas: TrailingCommas
	object_pattern_trailing_commas: TrailingCommas
	object_expression_trailing_commas: TrailingCommas
	tuple_type_trailing_commas: TrailingCommas
	type_literal_trailing_commas: TrailingCommas
	type_parameters_trailing_commas: TrailingCommas
	if_statement_use_braces: UseBraces
	for_statement_use_braces: UseBraces
	for_of_statement_use_braces: UseBraces
	for_in_statement_use_braces: UseBraces
	while_statement_use_braces: UseBraces
	array_expression_prefer_single_line: bool
	array_pattern_prefer_single_line: bool
	arguments_prefer_single_line: bool
	binary_expression_prefer_single_line: bool
	computed_prefer_single_line: bool
	conditional_expression_prefer_single_line: bool
	conditional_type_prefer_single_line: bool
	decorators_prefer_single_line: bool
	export_declaration_prefer_single_line: bool
	for_statement_prefer_single_line: bool
	import_declaration_prefer_single_line: bool
	jsx_attributes_prefer_single_line: bool
	jsx_element_prefer_single_line: bool
	mapped_type_prefer_single_line: bool
	member_expression_prefer_single_line: bool
	object_expression_prefer_single_line: bool
	object_pattern_prefer_single_line: bool
	parameters_prefer_single_line: bool
	parentheses_prefer_single_line: bool
	tuple_type_prefer_single_line: bool
	type_literal_prefer_single_line: bool
	type_parameters_prefer_single_line: bool
	union_and_intersection_type_prefer_single_line: bool
	variable_statement_prefer_single_line: bool
	import_declaration_force_single_line: bool
	export_declaration_force_single_line: bool
	export_declaration_force_multi_line: ForceMultiLine
	import_declaration_force_multi_line: ForceMultiLine
	binary_expression_space_surrounding_bitwise_and_arithmetic_operator: bool
	comment_line_force_space_after_slashes: bool
	construct_signature_space_after_new_keyword: bool
	constructor_space_before_parentheses: bool
	constructor_type_space_after_new_keyword: bool
	do_while_statement_space_after_while_keyword: bool
	export_declaration_space_surrounding_named_exports: bool
	for_statement_space_after_for_keyword: bool
	for_statement_space_after_semi_colons: bool
	for_in_statement_space_after_for_keyword: bool
	for_of_statement_space_after_for_keyword: bool
	function_declaration_space_before_parentheses: bool
	function_expression_space_before_parentheses: bool
	function_expression_space_after_function_keyword: bool
	get_accessor_space_before_parentheses: bool
	if_statement_space_after_if_keyword: bool
	import_declaration_space_surrounding_named_imports: bool
	jsx_expression_container_space_surrounding_expression: bool
	jsx_self_closing_element_space_before_slash: bool
	method_space_before_parentheses: bool
	object_expression_space_surrounding_properties: bool
	object_pattern_space_surrounding_properties: bool
	set_accessor_space_before_parentheses: bool
	space_surrounding_properties: bool
	tagged_template_space_before_literal: bool
	type_annotation_space_before_colon: bool
	type_assertion_space_before_expression: bool
	type_literal_space_surrounding_properties: bool
	while_statement_space_after_while_keyword: bool
	arguments_space_around: bool
	array_expression_space_around: bool
	array_pattern_space_around: bool
	catch_clause_space_around: bool
	do_while_statement_space_around: bool
	for_in_statement_space_around: bool
	for_of_statement_space_around: bool
	for_statement_space_around: bool
	if_statement_space_around: bool
	parameters_space_around: bool
	paren_expression_space_around: bool
	switch_statement_space_around: bool
	tuple_type_space_around: bool
	while_statement_space_around: bool

	def __init__(
			self,
			indent_width: int = ...,
			line_width: int = ...,
			use_tabs: bool = ...,
			new_line_kind: NewLineKind = ...,
			quote_style: QuoteStyle = ...,
			quote_props: QuoteProps = ...,
			semi_colons: SemiColons = ...,
			file_indent_level: int = ...,
			arrow_function_use_parentheses: UseParentheses = ...,
			binary_expression_line_per_expression: bool = ...,
			conditional_expression_line_per_expression: bool = ...,
			jsx_quote_style: JsxQuoteStyle = ...,
			jsx_multi_line_parens: JsxMultiLineParens = ...,
			jsx_force_new_lines_surrounding_content: bool = ...,
			jsx_opening_element_bracket_position: SameOrNextLinePosition = ...,
			jsx_self_closing_element_bracket_position: SameOrNextLinePosition = ...,
			member_expression_line_per_expression: bool = ...,
			type_literal_separator_kind_single_line: SemiColonOrComma = ...,
			type_literal_separator_kind_multi_line: SemiColonOrComma = ...,
			module_sort_import_declarations: SortOrder = ...,
			module_sort_export_declarations: SortOrder = ...,
			import_declaration_sort_named_imports: SortOrder = ...,
			import_declaration_sort_type_only_imports: NamedTypeImportsExportsOrder = ...,
			export_declaration_sort_named_exports: SortOrder = ...,
			export_declaration_sort_type_only_exports: NamedTypeImportsExportsOrder = ...,
			ignore_node_comment_text: str = ...,
			ignore_file_comment_text: str = ...,
			arrow_function_brace_position: BracePosition = ...,
			class_declaration_brace_position: BracePosition = ...,
			class_expression_brace_position: BracePosition = ...,
			constructor_brace_position: BracePosition = ...,
			do_while_statement_brace_position: BracePosition = ...,
			enum_declaration_brace_position: BracePosition = ...,
			get_accessor_brace_position: BracePosition = ...,
			if_statement_brace_position: BracePosition = ...,
			interface_declaration_brace_position: BracePosition = ...,
			for_statement_brace_position: BracePosition = ...,
			for_in_statement_brace_position: BracePosition = ...,
			for_of_statement_brace_position: BracePosition = ...,
			function_declaration_brace_position: BracePosition = ...,
			function_expression_brace_position: BracePosition = ...,
			method_brace_position: BracePosition = ...,
			module_declaration_brace_position: BracePosition = ...,
			set_accessor_brace_position: BracePosition = ...,
			static_block_brace_position: BracePosition = ...,
			switch_case_brace_position: BracePosition = ...,
			switch_statement_brace_position: BracePosition = ...,
			try_statement_brace_position: BracePosition = ...,
			while_statement_brace_position: BracePosition = ...,
			arguments_prefer_hanging: PreferHanging = ...,
			array_expression_prefer_hanging: PreferHanging = ...,
			array_pattern_prefer_hanging: bool = ...,
			do_while_statement_prefer_hanging: bool = ...,
			export_declaration_prefer_hanging: bool = ...,
			extends_clause_prefer_hanging: bool = ...,
			for_statement_prefer_hanging: bool = ...,
			for_in_statement_prefer_hanging: bool = ...,
			for_of_statement_prefer_hanging: bool = ...,
			if_statement_prefer_hanging: bool = ...,
			implements_clause_prefer_hanging: bool = ...,
			import_declaration_prefer_hanging: bool = ...,
			jsx_attributes_prefer_hanging: bool = ...,
			object_expression_prefer_hanging: bool = ...,
			object_pattern_prefer_hanging: bool = ...,
			parameters_prefer_hanging: PreferHanging = ...,
			sequence_expression_prefer_hanging: bool = ...,
			switch_statement_prefer_hanging: bool = ...,
			tuple_type_prefer_hanging: PreferHanging = ...,
			type_literal_prefer_hanging: bool = ...,
			type_parameters_prefer_hanging: PreferHanging = ...,
			union_and_intersection_type_prefer_hanging: bool = ...,
			variable_statement_prefer_hanging: bool = ...,
			while_statement_prefer_hanging: bool = ...,
			enum_declaration_member_spacing: MemberSpacing = ...,
			if_statement_next_control_flow_position: NextControlFlowPosition = ...,
			try_statement_next_control_flow_position: NextControlFlowPosition = ...,
			do_while_statement_next_control_flow_position: NextControlFlowPosition = ...,
			binary_expression_operator_position: OperatorPosition = ...,
			conditional_expression_operator_position: OperatorPosition = ...,
			conditional_type_operator_position: OperatorPosition = ...,
			if_statement_single_body_position: SameOrNextLinePosition = ...,
			for_statement_single_body_position: SameOrNextLinePosition = ...,
			for_in_statement_single_body_position: SameOrNextLinePosition = ...,
			for_of_statement_single_body_position: SameOrNextLinePosition = ...,
			while_statement_single_body_position: SameOrNextLinePosition = ...,
			arguments_trailing_commas: TrailingCommas = ...,
			parameters_trailing_commas: TrailingCommas = ...,
			array_expression_trailing_commas: TrailingCommas = ...,
			array_pattern_trailing_commas: TrailingCommas = ...,
			enum_declaration_trailing_commas: TrailingCommas = ...,
			export_declaration_trailing_commas: TrailingCommas = ...,
			import_declaration_trailing_commas: TrailingCommas = ...,
			object_pattern_trailing_commas: TrailingCommas = ...,
			object_expression_trailing_commas: TrailingCommas = ...,
			tuple_type_trailing_commas: TrailingCommas = ...,
			type_literal_trailing_commas: TrailingCommas = ...,
			type_parameters_trailing_commas: TrailingCommas = ...,
			if_statement_use_braces: UseBraces = ...,
			for_statement_use_braces: UseBraces = ...,
			for_of_statement_use_braces: UseBraces = ...,
			for_in_statement_use_braces: UseBraces = ...,
			while_statement_use_braces: UseBraces = ...,
			array_expression_prefer_single_line: bool = ...,
			array_pattern_prefer_single_line: bool = ...,
			arguments_prefer_single_line: bool = ...,
			binary_expression_prefer_single_line: bool = ...,
			computed_prefer_single_line: bool = ...,
			conditional_expression_prefer_single_line: bool = ...,
			conditional_type_prefer_single_line: bool = ...,
			decorators_prefer_single_line: bool = ...,
			export_declaration_prefer_single_line: bool = ...,
			for_statement_prefer_single_line: bool = ...,
			import_declaration_prefer_single_line: bool = ...,
			jsx_attributes_prefer_single_line: bool = ...,
			jsx_element_prefer_single_line: bool = ...,
			mapped_type_prefer_single_line: bool = ...,
			member_expression_prefer_single_line: bool = ...,
			object_expression_prefer_single_line: bool = ...,
			object_pattern_prefer_single_line: bool = ...,
			parameters_prefer_single_line: bool = ...,
			parentheses_prefer_single_line: bool = ...,
			tuple_type_prefer_single_line: bool = ...,
			type_literal_prefer_single_line: bool = ...,
			type_parameters_prefer_single_line: bool = ...,
			union_and_intersection_type_prefer_single_line: bool = ...,
			variable_statement_prefer_single_line: bool = ...,
			import_declaration_force_single_line: bool = ...,
			export_declaration_force_single_line: bool = ...,
			export_declaration_force_multi_line: ForceMultiLine = ...,
			import_declaration_force_multi_line: ForceMultiLine = ...,
			binary_expression_space_surrounding_bitwise_and_arithmetic_operator: bool = ...,
			comment_line_force_space_after_slashes: bool = ...,
			construct_signature_space_after_new_keyword: bool = ...,
			constructor_space_before_parentheses: bool = ...,
			constructor_type_space_after_new_keyword: bool = ...,
			do_while_statement_space_after_while_keyword: bool = ...,
			export_declaration_space_surrounding_named_exports: bool = ...,
			for_statement_space_after_for_keyword: bool = ...,
			for_statement_space_after_semi_colons: bool = ...,
			for_in_statement_space_after_for_keyword: bool = ...,
			for_of_statement_space_after_for_keyword: bool = ...,
			function_declaration_space_before_parentheses: bool = ...,
			function_expression_space_before_parentheses: bool = ...,
			function_expression_space_after_function_keyword: bool = ...,
			get_accessor_space_before_parentheses: bool = ...,
			if_statement_space_after_if_keyword: bool = ...,
			import_declaration_space_surrounding_named_imports: bool = ...,
			jsx_expression_container_space_surrounding_expression: bool = ...,
			jsx_self_closing_element_space_before_slash: bool = ...,
			method_space_before_parentheses: bool = ...,
			object_expression_space_surrounding_properties: bool = ...,
			object_pattern_space_surrounding_properties: bool = ...,
			set_accessor_space_before_parentheses: bool = ...,
			space_surrounding_properties: bool = ...,
			tagged_template_space_before_literal: bool = ...,
			type_annotation_space_before_colon: bool = ...,
			type_assertion_space_before_expression: bool = ...,
			type_literal_space_surrounding_properties: bool = ...,
			while_statement_space_after_while_keyword: bool = ...,
			arguments_space_around: bool = ...,
			array_expression_space_around: bool = ...,
			array_pattern_space_around: bool = ...,
			catch_clause_space_around: bool = ...,
			do_while_statement_space_around: bool = ...,
			for_in_statement_space_around: bool = ...,
			for_of_statement_space_around: bool = ...,
			for_statement_space_around: bool = ...,
			if_statement_space_around: bool = ...,
			parameters_space_around: bool = ...,
			paren_expression_space_around: bool = ...,
			switch_statement_space_around: bool = ...,
			tuple_type_space_around: bool = ...,
			while_statement_space_around: bool = ...,
			): ...

	def to_dict(self, changed: bool = ...) -> Dict[str, Any]: ...
	def __iter__(self) -> Iterator[str]: ...
	def __getitem__(self, value: str) -> Any: ...
	def __contains__(self, key: str) -> bool: ...
	def __len__(self) -> int: ...
	def keys(self) -> List[str]: ...
	def values(self) -> List[Any]: ...
	def items(self) -> List[Tuple[str, Any]]: ...

class FormatTextOptions:
	path: PathLike
	extension: Optional[str]
	text: str
	config: Configuration

	def __init__(
			self,
			path: PathLike,
			extension: Optional[str],
			text: str,
			config: Configuration,
			): ...

def format_text(options: FormatTextOptions) -> Optional[str]: ...
