<commit_before>interface FpJsFormValidator
{
    errorClass: string;
    inputGroupClass: string;
    hasErrorClass: string;
    insertMethod: string;

    getElementValue(element: FpJsFormElement): any;
    isValueEmpty(value: any): boolean;
    getValueLength(value: any): number;
}

declare class FpJsFormElement
{
    domNode: HTMLInputElement;
    children: {[name: string]: FpJsFormElement};

    get(path: string): FpJsFormElement;
    getValue(): any;
    onValidate(this: HTMLElement, errors: Object, event: Event): void
}

declare class FpJsFormError
{
    greeting: string;
    atPath: string;

    constructor(message: string, atPath?: string);
}

interface FpJsDomUtility
{
    previousElementSibling(element: Element): HTMLElement;
    nextElementSibling(element: Element): HTMLElement;
    hasClass(element: Element, className: string): boolean;
    removeClass(element: Element, className: string): void;
    addClass(element: Element, className: string): void;
    getActiveElement(): HTMLElement;
}

interface ConstraintValidator
{
    validate(value: any, element: FpJsFormElement): (FpJsFormError|string)[];
}

declare const FpJsFormValidator: FpJsFormValidator;
declare const FpJsDomUtility: FpJsDomUtility;
<commit_msg>Added getData method to FpJsFormValidator TS types<commit_after>interface FpJsFormValidator
{
    errorClass: string;
    inputGroupClass: string;
    hasErrorClass: string;
    insertMethod: string;

    getElementValue(element: FpJsFormElement): any;
    isValueEmpty(value: any): boolean;
    getValueLength(value: any): number;
}

declare class FpJsFormElement
{
    domNode: HTMLInputElement;
    children: {[name: string]: FpJsFormElement};

    get(path: string): FpJsFormElement;
    getData(): any;
    getValue(): any;
    onValidate(this: HTMLElement, errors: Object, event: Event): void
}

declare class FpJsFormError
{
    greeting: string;
    atPath: string;

    constructor(message: string, atPath?: string);
}

interface FpJsDomUtility
{
    previousElementSibling(element: Element): HTMLElement;
    nextElementSibling(element: Element): HTMLElement;
    hasClass(element: Element, className: string): boolean;
    removeClass(element: Element, className: string): void;
    addClass(element: Element, className: string): void;
    getActiveElement(): HTMLElement;
}

interface ConstraintValidator
{
    validate(value: any, element: FpJsFormElement): (FpJsFormError|string)[];
}

declare const FpJsFormValidator: FpJsFormValidator;
declare const FpJsDomUtility: FpJsDomUtility;

{'fraction_non_alphanumeric': 0.10003938558487593, 'fraction_numerical': 0.0, 'mean_word_length': 5.240786240786241, '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': '521835', 'n_tokens_mistral': 778, 'n_tokens_neox': 776, 'n_words': 190}