# Stubs for email._header_value_parser (Python 3.4)
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.

from typing import Any

WSP = ...  # type: Any
CFWS_LEADER = ...  # type: Any
SPECIALS = ...  # type: Any
ATOM_ENDS = ...  # type: Any
DOT_ATOM_ENDS = ...  # type: Any
PHRASE_ENDS = ...  # type: Any
TSPECIALS = ...  # type: Any
TOKEN_ENDS = ...  # type: Any
ASPECIALS = ...  # type: Any
ATTRIBUTE_ENDS = ...  # type: Any
EXTENDED_ATTRIBUTE_ENDS = ...  # type: Any

def quote_string(value): ...

class _Folded:
    maxlen = ...  # type: Any
    policy = ...  # type: Any
    lastlen = ...  # type: Any
    stickyspace = ...  # type: Any
    firstline = ...  # type: Any
    done = ...  # type: Any
    current = ...  # type: Any
    def __init__(self, maxlen, policy) -> None: ...
    def newline(self): ...
    def finalize(self): ...
    def append(self, stoken): ...
    def append_if_fits(self, token, stoken=...): ...

class TokenList(list):
    token_type = ...  # type: Any
    defects = ...  # type: Any
    def __init__(self, *args, **kw) -> None: ...
    @property
    def value(self): ...
    @property
    def all_defects(self): ...
    @property
    def parts(self): ...
    def startswith_fws(self): ...
    def pop_leading_fws(self): ...
    def pop_trailing_ws(self): ...
    @property
    def has_fws(self): ...
    def has_leading_comment(self): ...
    @property
    def comments(self): ...
    def fold(self, policy): ...
    def as_encoded_word(self, charset): ...
    def cte_encode(self, charset, policy): ...
    def pprint(self, indent=...): ...
    def ppstr(self, indent=...): ...

class WhiteSpaceTokenList(TokenList):
    @property
    def value(self): ...
    @property
    def comments(self): ...

class UnstructuredTokenList(TokenList):
    token_type = ...  # type: Any
    def cte_encode(self, charset, policy): ...

class Phrase(TokenList):
    token_type = ...  # type: Any
    def cte_encode(self, charset, policy): ...

class Word(TokenList):
    token_type = ...  # type: Any

class CFWSList(WhiteSpaceTokenList):
    token_type = ...  # type: Any
    def has_leading_comment(self): ...

class Atom(TokenList):
    token_type = ...  # type: Any

class Token(TokenList):
    token_type = ...  # type: Any

class EncodedWord(TokenList):
    token_type = ...  # type: Any
    cte = ...  # type: Any
    charset = ...  # type: Any
    lang = ...  # type: Any
    @property
    def encoded(self): ...

class QuotedString(TokenList):
    token_type = ...  # type: Any
    @property
    def content(self): ...
    @property
    def quoted_value(self): ...
    @property
    def stripped_value(self): ...

class BareQuotedString(QuotedString):
    token_type = ...  # type: Any
    @property
    def value(self): ...

class Comment(WhiteSpaceTokenList):
    token_type = ...  # type: Any
    def quote(self, value): ...
    @property
    def content(self): ...
    @property
    def comments(self): ...

class AddressList(TokenList):
    token_type = ...  # type: Any
    @property
    def addresses(self): ...
    @property
    def mailboxes(self): ...
    @property
    def all_mailboxes(self): ...

class Address(TokenList):
    token_type = ...  # type: Any
    @property
    def display_name(self): ...
    @property
    def mailboxes(self): ...
    @property
    def all_mailboxes(self): ...

class MailboxList(TokenList):
    token_type = ...  # type: Any
    @property
    def mailboxes(self): ...
    @property
    def all_mailboxes(self): ...

class GroupList(TokenList):
    token_type = ...  # type: Any
    @property
    def mailboxes(self): ...
    @property
    def all_mailboxes(self): ...

class Group(TokenList):
    token_type = ...  # type: Any
    @property
    def mailboxes(self): ...
    @property
    def all_mailboxes(self): ...
    @property
    def display_name(self): ...

class NameAddr(TokenList):
    token_type = ...  # type: Any
    @property
    def display_name(self): ...
    @property
    def local_part(self): ...
    @property
    def domain(self): ...
    @property
    def route(self): ...
    @property
    def addr_spec(self): ...

class AngleAddr(TokenList):
    token_type = ...  # type: Any
    @property
    def local_part(self): ...
    @property
    def domain(self): ...
    @property
    def route(self): ...
    @property
    def addr_spec(self): ...

class ObsRoute(TokenList):
    token_type = ...  # type: Any
    @property
    def domains(self): ...

class Mailbox(TokenList):
    token_type = ...  # type: Any
    @property
    def display_name(self): ...
    @property
    def local_part(self): ...
    @property
    def domain(self): ...
    @property
    def route(self): ...
    @property
    def addr_spec(self): ...

class InvalidMailbox(TokenList):
    token_type = ...  # type: Any
    @property
    def display_name(self): ...
    local_part = ...  # type: Any

class Domain(TokenList):
    token_type = ...  # type: Any
    @property
    def domain(self): ...

class DotAtom(TokenList):
    token_type = ...  # type: Any

class DotAtomText(TokenList):
    token_type = ...  # type: Any

class AddrSpec(TokenList):
    token_type = ...  # type: Any
    @property
    def local_part(self): ...
    @property
    def domain(self): ...
    @property
    def value(self): ...
    @property
    def addr_spec(self): ...

class ObsLocalPart(TokenList):
    token_type = ...  # type: Any

class DisplayName(Phrase):
    token_type = ...  # type: Any
    @property
    def display_name(self): ...
    @property
    def value(self): ...

class LocalPart(TokenList):
    token_type = ...  # type: Any
    @property
    def value(self): ...
    @property
    def local_part(self): ...

class DomainLiteral(TokenList):
    token_type = ...  # type: Any
    @property
    def domain(self): ...
    @property
    def ip(self): ...

class MIMEVersion(TokenList):
    token_type = ...  # type: Any
    major = ...  # type: Any
    minor = ...  # type: Any

class Parameter(TokenList):
    token_type = ...  # type: Any
    sectioned = ...  # type: Any
    extended = ...  # type: Any
    charset = ...  # type: Any
    @property
    def section_number(self): ...
    @property
    def param_value(self): ...

class InvalidParameter(Parameter):
    token_type = ...  # type: Any

class Attribute(TokenList):
    token_type = ...  # type: Any
    @property
    def stripped_value(self): ...

class Section(TokenList):
    token_type = ...  # type: Any
    number = ...  # type: Any

class Value(TokenList):
    token_type = ...  # type: Any
    @property
    def stripped_value(self): ...

class MimeParameters(TokenList):
    token_type = ...  # type: Any
    @property
    def params(self): ...

class ParameterizedHeaderValue(TokenList):
    @property
    def params(self): ...
    @property
    def parts(self): ...

class ContentType(ParameterizedHeaderValue):
    token_type = ...  # type: Any
    maintype = ...  # type: Any
    subtype = ...  # type: Any

class ContentDisposition(ParameterizedHeaderValue):
    token_type = ...  # type: Any
    content_disposition = ...  # type: Any

class ContentTransferEncoding(TokenList):
    token_type = ...  # type: Any
    cte = ...  # type: Any

class HeaderLabel(TokenList):
    token_type = ...  # type: Any

class Header(TokenList):
    token_type = ...  # type: Any

class Terminal(str):
    token_type = ...  # type: Any
    defects = ...  # type: Any
    def __new__(cls, value, token_type): ...
    @property
    def all_defects(self): ...
    def cte_encode(self, charset, policy): ...
    def pop_trailing_ws(self): ...
    def pop_leading_fws(self): ...
    @property
    def comments(self): ...
    def has_leading_comment(self): ...
    def __getnewargs__(self): ...

class WhiteSpaceTerminal(Terminal):
    @property
    def value(self): ...
    def startswith_fws(self): ...
    has_fws = ...  # type: Any

class ValueTerminal(Terminal):
    @property
    def value(self): ...
    def startswith_fws(self): ...
    has_fws = ...  # type: Any
    def as_encoded_word(self, charset): ...

class EWWhiteSpaceTerminal(WhiteSpaceTerminal):
    @property
    def value(self): ...
    @property
    def encoded(self): ...
    has_fws = ...  # type: Any

DOT = ...  # type: Any
ListSeparator = ...  # type: Any
RouteComponentMarker = ...  # type: Any

def get_fws(value): ...
def get_encoded_word(value): ...
def get_unstructured(value): ...
def get_qp_ctext(value): ...
def get_qcontent(value): ...
def get_atext(value): ...
def get_bare_quoted_string(value): ...
def get_comment(value): ...
def get_cfws(value): ...
def get_quoted_string(value): ...
def get_atom(value): ...
def get_dot_atom_text(value): ...
def get_dot_atom(value): ...
def get_word(value): ...
def get_phrase(value): ...
def get_local_part(value): ...
def get_obs_local_part(value): ...
def get_dtext(value): ...
def get_domain_literal(value): ...
def get_domain(value): ...
def get_addr_spec(value): ...
def get_obs_route(value): ...
def get_angle_addr(value): ...
def get_display_name(value): ...
def get_name_addr(value): ...
def get_mailbox(value): ...
def get_invalid_mailbox(value, endchars): ...
def get_mailbox_list(value): ...
def get_group_list(value): ...
def get_group(value): ...
def get_address(value): ...
def get_address_list(value): ...
def parse_mime_version(value): ...
def get_invalid_parameter(value): ...
def get_ttext(value): ...
def get_token(value): ...
def get_attrtext(value): ...
def get_attribute(value): ...
def get_extended_attrtext(value): ...
def get_extended_attribute(value): ...
def get_section(value): ...
def get_value(value): ...
def get_parameter(value): ...
def parse_mime_parameters(value): ...
def parse_content_type_header(value): ...
def parse_content_disposition_header(value): ...
def parse_content_transfer_encoding_header(value): ...
