<commit_before>declare module "email-addresses" {
    export function parseOneAddress(opts: string): ParsedEmailOutput;
    export function parseAddressList(opts: string): ParsedEmailOutput[];
    export interface ParsedEmailOutput { 
        parts: { 
            name: {
                tokens: string;
                semantic: string;
            };
            address: {
                tokens: string;
                semantic:string;
            };
            local: {
                tokens: string;
                semantic:string;
            };
            domain: {
                tokens: string;
                semantic:string;
            };
        };
        name: string;
        address: string;
        local: string;
        domain: string;
    }
}
<commit_msg>add complete typescript typings<commit_after>declare module emailAddresses {
    function parseOneAddress(input: string | Options): ParsedAddress;
    function parseAddressList(input: string | Options): ParsedAddress[];
    interface ParsedAddress {
        parts: {
            name: ASTNode;
            address: ASTNode;
            local: ASTNode;
            domain: ASTNode;
            comments: ASTNode[];
        };
        name: string;
        address: string;
        local: string;
        domain: string;
    }

    interface ASTNode {
        name: string;
        tokens: string;
        semantic: string;
        children: ASTNode[];
    }

    interface Options {
        input: string;
        partial?: boolean;
        rejectTLD?: boolean;
        rfc6532?: boolean;
        simple?: boolean;
        strict?: boolean;
    }

    interface ParsedResult {
        ast: ASTNode;
        addresses: ParsedAddress[];
    }
}

declare function emailAddresses(opts: emailAddresses.Options): emailAddresses.ParsedResult;

declare module "email-addresses" {
    export = emailAddresses;
}

{'fraction_non_alphanumeric': 0.08691043985161633, 'fraction_numerical': 0.0021197668256491787, 'mean_word_length': 1.7048710601719197, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1647771', 'n_tokens_mistral': 497, 'n_tokens_neox': 475, 'n_words': 119}