<commit_before>export type Typed = {
    "type": string | Typed[];
    "subtype"?: Typed;
    "nullable"?: 1;
    "type-original"?: string;
    "override-type"?: string;
};

export type Param = {
    "name": string;
    "type": string | Typed[];
    "subtype"?: Typed;
    "nullable"?: 1;
    "type-original": string;
    "optional"?: 1;
    "variadic"?: 1;
    "treat-null-as"?: string;
};

export type Signature = {
    "type": string | Typed[];
    "subtype"?: Typed;
    "nullable"?: 1;
    "type-original": string;
    "param"?: Param[];
    "param-min-required"?: number,
};

export type Member = {
    "name": string;
    "type": string | Typed[];
    "subtype"?: Typed;
    "nullable"?: 1;
    "type-original": string;
    "default"?: string;
    "required"?: 1;
    "override-type"?: string;
    "specs"?: string;
};

export type Property = {
    "name": string;
    "event-handler"?: string;
    "type": string | Typed[];
    "subtype"?: Typed;
    "nullable"?: 1;
    "type-original": string;
    "read-only"?: 1;
    "replaceable"?: string;
    "put-forwards"?: string;
    "stringifier"?: 1;
    "tags"?: string;
    "property-descriptor-not-enumerable"?: string;
    "content-attribute"?: string;
    "content-attribute-reflects"?: string;
    "content-attribute-value-syntax"?: string;
    "content-attribute-enum-values"?: string;
    "content-attribute-aliases"?: string;
    "content-attribute-boolean"?: string;
    "css-property"?: string;
    "css-property-enum-values"?: string;
    "css-property-initial"?: string;
    "css-property-value-syntax"?: string;
    "css-property-shorthand"?: string;
    "css-property-subproperties"?: string;
    "css-property-animatable"?: string;
    "css-property-aliases"?: string;
    "lenient-this"?: string;
    "treat-null-as"?: string;
    "event-handler-map-to-window"?: string;
    "static"?: 1;
    "comment"?: string;
    "override-type"?: string;
    "required"?: 1;
    "specs"?: string;
    "deprecated"?: 1;
    "interop"?: 1;
    "exposed"?: string;
    "constant"?: 1;
};

export type Event = {
    "name": string;
    "type": string;
    "dispatch"?: string;
    "skips-window"?: string;
    "bubbles"?: 1;
    "cancelable"?: 1;
    "follows"?: string;
    "precedes"?: string;
    "tags"?: string;
    "aliases"?: string;
    "specs"?: string;
};

export type Method = {
    "name": string;
    "tags"?: string;
    "static"?: 1;
    "getter"?: 1;
    "stringifier"?: 1;
    "serializer"?: 1;
    "serializer-info"?: string;
    "comment"?: string;
    "override-signatures"?: string[];
    "additional-signatures"?: string[];
    "specs"?: string;
    "exposed"?: string;
    "deprecated"?: 1;
    "signature": Signature[];
};

export type CallbackFunction = {
    "name": string;
    "callback": 1;
    "signature": Signature[];
    "tags"?: string;
    "override-signatures"?: string[];
    "specs"?: string;
};

export type Constructor = {
    "signature": Signature[];
    "comment"?: string;
    "specs"?: string;
};

export type NamedConstructor = {
    "name": string;
    "signature": Signature[];
    "specs"?: string;
};

export type Constant = {
    "name": string;
    "type": string | Typed[];
    "subtype"?: Typed;
    "nullable"?: 1;
    "type-original": string;
    "value": string;
    "tags"?: string
    "exposed"?: string;
    "specs"?: string;
};

export type ParsedAttribute ={
    "enum-values"?: string;
    "name": string;
    "value-syntax"?: string;
};

export type Element = {
    "name": string;
    "namespace"?: string;
    "html-self-closing"?: string;
    "specs"?: string;
};

export type Interface = {
    "name": string;
    "extends": string;
    "constants"?: {
        "constant": Record<string, Constant>;
    };
    "methods": {
        "method": Record<string, Method>;
    };
    "events"?: {
        "event": Event[];
    };
    "properties"?: {
        "property": Record<string, Property>;
    };
    "constructor"?: Constructor;
    "secure-context"?: string;
    "implements"?: string[];
    "static"?: 1;
    "anonymous-methods"?: {
        "method": Method[];
    };
    "anonymous-content-attributes"?: {
        "parsedattribute": ParsedAttribute[];
    };
    "element"?: Element[];
    "named-constructor"?: NamedConstructor;
    "override-builtins"?: string;
    "exposed"?: string;
    "tags"?: string;
    "implicit-this"?: string;
    "primary-global"?: string;
    "no-interface-object"?: string;
    "global"?: string;
    "type-parameters"?: string[];
    "overide-index-signatures"?: string[];
    "specs"?: string;
    "iterable"?: "value" | "pair" | "pair-iterator";
};

export type Enum = {
    "name": string;
    "value": string[];
    "specs"?: string;
};

export type TypeDef = {
    "new-type": string;
    "type": string;
    "override-type"?: string;
};

export type Dictionary = {
    "name": string;
    "extends": string;
    "members": {
        "member": Record<string, Member>;
    };
    "specs"?: string;
    "type-parameters"?: string[];
};

export type WebIdl = {
    "callback-functions"?: {
        "callback-function": Record<string, CallbackFunction>;
    },
    "callback-interfaces"?: {
        "interface": Record<string, Interface>;
    };
    "dictionaries"?: {
        "dictionary": Record<string, Dictionary>;
    };
    "enums"?: {
        "enum": Record<string, Enum>;
    };
    "interfaces"?: {
        "interface": Record<string, Interface>;
    };
    "mixins"?: {
        "mixin": Record<string, Interface>;
    };
    "typedefs"?: {
        "typedef": TypeDef[];
    };
};<commit_msg>use interfaces<commit_after>export interface Typed {
    "type": string | Typed[];
    "subtype"?: Typed;
    "nullable"?: 1;
    "type-original"?: string;
    "override-type"?: string;
}

export interface Param {
    "name": string;
    "type": string | Typed[];
    "subtype"?: Typed;
    "nullable"?: 1;
    "type-original": string;
    "optional"?: 1;
    "variadic"?: 1;
    "treat-null-as"?: string;
}

export interface Signature {
    "type": string | Typed[];
    "subtype"?: Typed;
    "nullable"?: 1;
    "type-original": string;
    "param"?: Param[];
    "param-min-required"?: number,
}

export interface Member {
    "name": string;
    "type": string | Typed[];
    "subtype"?: Typed;
    "nullable"?: 1;
    "type-original": string;
    "default"?: string;
    "required"?: 1;
    "override-type"?: string;
    "specs"?: string;
}

export interface Property {
    "name": string;
    "event-handler"?: string;
    "type": string | Typed[];
    "subtype"?: Typed;
    "nullable"?: 1;
    "type-original": string;
    "read-only"?: 1;
    "replaceable"?: string;
    "put-forwards"?: string;
    "stringifier"?: 1;
    "tags"?: string;
    "property-descriptor-not-enumerable"?: string;
    "content-attribute"?: string;
    "content-attribute-reflects"?: string;
    "content-attribute-value-syntax"?: string;
    "content-attribute-enum-values"?: string;
    "content-attribute-aliases"?: string;
    "content-attribute-boolean"?: string;
    "css-property"?: string;
    "css-property-enum-values"?: string;
    "css-property-initial"?: string;
    "css-property-value-syntax"?: string;
    "css-property-shorthand"?: string;
    "css-property-subproperties"?: string;
    "css-property-animatable"?: string;
    "css-property-aliases"?: string;
    "lenient-this"?: string;
    "treat-null-as"?: string;
    "event-handler-map-to-window"?: string;
    "static"?: 1;
    "comment"?: string;
    "override-type"?: string;
    "required"?: 1;
    "specs"?: string;
    "deprecated"?: 1;
    "interop"?: 1;
    "exposed"?: string;
    "constant"?: 1;
}

export interface Event {
    "name": string;
    "type": string;
    "dispatch"?: string;
    "skips-window"?: string;
    "bubbles"?: 1;
    "cancelable"?: 1;
    "follows"?: string;
    "precedes"?: string;
    "tags"?: string;
    "aliases"?: string;
    "specs"?: string;
}

export interface Method {
    "name": string;
    "tags"?: string;
    "static"?: 1;
    "getter"?: 1;
    "stringifier"?: 1;
    "serializer"?: 1;
    "serializer-info"?: string;
    "comment"?: string;
    "override-signatures"?: string[];
    "additional-signatures"?: string[];
    "specs"?: string;
    "exposed"?: string;
    "deprecated"?: 1;
    "signature": Signature[];
}

export interface CallbackFunction {
    "name": string;
    "callback": 1;
    "signature": Signature[];
    "tags"?: string;
    "override-signatures"?: string[];
    "specs"?: string;
}

export interface Constructor {
    "signature": Signature[];
    "comment"?: string;
    "specs"?: string;
}

export interface NamedConstructor {
    "name": string;
    "signature": Signature[];
    "specs"?: string;
}

export interface Constant {
    "name": string;
    "type": string | Typed[];
    "subtype"?: Typed;
    "nullable"?: 1;
    "type-original": string;
    "value": string;
    "tags"?: string
    "exposed"?: string;
    "specs"?: string;
}

export interface ParsedAttribute{
    "enum-values"?: string;
    "name": string;
    "value-syntax"?: string;
}

export interface Element {
    "name": string;
    "namespace"?: string;
    "html-self-closing"?: string;
    "specs"?: string;
}

export interface Interface {
    "name": string;
    "extends": string;
    "constants"?: {
        "constant": Record<string, Constant>;
    }
    "methods": {
        "method": Record<string, Method>;
    }
    "events"?: {
        "event": Event[];
    }
    "properties"?: {
        "property": Record<string, Property>;
    }
    "constructor"?: Constructor;
    "secure-context"?: string;
    "implements"?: string[];
    "static"?: 1;
    "anonymous-methods"?: {
        "method": Method[];
    }
    "anonymous-content-attributes"?: {
        "parsedattribute": ParsedAttribute[];
    }
    "element"?: Element[];
    "named-constructor"?: NamedConstructor;
    "override-builtins"?: string;
    "exposed"?: string;
    "tags"?: string;
    "implicit-this"?: string;
    "primary-global"?: string;
    "no-interface-object"?: string;
    "global"?: string;
    "type-parameters"?: string[];
    "overide-index-signatures"?: string[];
    "specs"?: string;
    "iterable"?: "value" | "pair" | "pair-iterator";
}

export interface Enum {
    "name": string;
    "value": string[];
    "specs"?: string;
}

export interface TypeDef {
    "new-type": string;
    "type": string;
    "override-type"?: string;
}

export interface Dictionary {
    "name": string;
    "extends": string;
    "members": {
        "member": Record<string, Member>;
    }
    "specs"?: string;
    "type-parameters"?: string[];
}

export interface WebIdl {
    "callback-functions"?: {
        "callback-function": Record<string, CallbackFunction>;
    },
    "callback-interfaces"?: {
        "interface": Record<string, Interface>;
    }
    "dictionaries"?: {
        "dictionary": Record<string, Dictionary>;
    }
    "enums"?: {
        "enum": Record<string, Enum>;
    }
    "interfaces"?: {
        "interface": Record<string, Interface>;
    }
    "mixins"?: {
        "mixin": Record<string, Interface>;
    }
    "typedefs"?: {
        "typedef": TypeDef[];
    }
}
{'fraction_non_alphanumeric': 0.1942400861295532, 'fraction_numerical': 0.004485914229319935, 'mean_word_length': 2.9584517045454546, 'pattern_counts': {'":': 104, '<': 23, '<?xml version=': 0, '>': 23, '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': '295607', 'n_tokens_mistral': 3843, 'n_tokens_neox': 3809, 'n_words': 821}