<commit_before>
declare module 'meteor/vulcan:accounts';
declare module 'meteor/vulcan:i18n';
declare module 'meteor/vulcan:lib';
declare module 'meteor/vulcan:users';
declare module 'meteor/random';
declare module 'meteor/meteor';
declare module 'meteor/accounts-base';
declare module 'meteor/practicalmeteor:chai';

declare module 'meteor/vulcan:core' {
  export const Components: ComponentTypes;
  
  export function registerComponent<PropType>(name: string, rawComponent: React.ComponentType<PropType>): rawComponent
  export function registerComponent<PropType, T1>(name: string, rawComponent: React.ComponentType<PropType>, HoC1: HoC<PropType,T1>): C<T1>
  export function registerComponent<PropType, T1, T2>(name: string, rawComponent: React.ComponentType<PropType>, HoC1: HoC<T1, T2>, HoC2: HoC<PropType, T1>):C<T2>
  export function registerComponent<PropType, T1, T2, T3>(name: string, rawComponent: C<PropType>, HoC1: HoC<T2, T3>, HoC2: HoC<T1, T2>, HoC3: HoC<PropType, T1>): C<T3>
  export function registerComponent<PropType, T1, T2, T3, T4>(name: string, rawComponent: C<PropType>, HoC1: HoC<T3, T4>, HoC2: HoC<T2, T3>, HoC3: HoC<T1, T2>, HoC4: HoC<PropType, T1>): C<T4>
  export function registerComponent<PropType, T1, T2, T3, T4, T5>(name: string, rawComponent: C<PropType>, HoC1: HoC<T4, T5>, HoC2: HoC<T3, T4>, HoC3: HoC<T2, T3>, HoC4: HoC<T1, T2>, HoC5: HoC<PropType, T1>): C<T5>
  export function registerComponent<PropType, T1, T2, T3, T4, T5, T6>(name: string, rawComponent: C<PropType>, HoC1: HoC<T5, T6>, HoC2: HoC<T4, T5>, HoC3: HoC<T3, T4>, HoC4: HoC<T2, T3>, HoC5: HoC<T1, T2>, HoC6: HoC<PropType, T1>): C<T6>
  export function registerComponent<PropType, T1, T2, T3, T4, T5, T6, T7>(name: string, rawComponent: C<PropType>, HoC1:HoC<T6, T7>, HoC2: HoC<T5, T6>, HoC3: HoC<T4, T5>, HoC4: HoC<T3, T4>, HoC5: HoC<T2, T3>, HoC6: HoC<T1, T2>, ...hocs: HoC<PropType, T1>[]): C<T7>
  
  export const Utils: any;
  export const getSetting: any;
  export const getCollection: any;
  export const getFragment: any;
  export const registerFragment: any;
  export const getFragmentName: any;
  export const getAllFragmentNames: any;
  export const getCollectionName: any;
  export const addCallback: any;
  export const runCallbacks: any;
  export const runCallbacksAsync: any;
  export const newMutation: any;<commit_msg>Fix registerComponent definition, exposing lots of type errors<commit_after>
declare module 'meteor/vulcan:accounts';
declare module 'meteor/vulcan:i18n';
declare module 'meteor/vulcan:lib';
declare module 'meteor/vulcan:users';
declare module 'meteor/random';
declare module 'meteor/meteor';
declare module 'meteor/accounts-base';
declare module 'meteor/practicalmeteor:chai';

type C<T=any> = React.ComponentType<T>
type HoC<O,T> = (component: C<O>) => C<T>

declare module 'meteor/vulcan:core' {
  export const Components: ComponentTypes;
  
  export function registerComponent<PropType>(name: string, rawComponent: React.ComponentType<PropType>): React.ComponentType<PropType>
  export function registerComponent<PropType, T1>(name: string, rawComponent: React.ComponentType<PropType>, HoC1: HoC<PropType,T1>): C<T1>
  export function registerComponent<PropType, T1, T2>(name: string, rawComponent: React.ComponentType<PropType>, HoC1: HoC<T1, T2>, HoC2: HoC<PropType, T1>):C<T2>
  export function registerComponent<PropType, T1, T2, T3>(name: string, rawComponent: C<PropType>, HoC1: HoC<T2, T3>, HoC2: HoC<T1, T2>, HoC3: HoC<PropType, T1>): C<T3>
  export function registerComponent<PropType, T1, T2, T3, T4>(name: string, rawComponent: C<PropType>, HoC1: HoC<T3, T4>, HoC2: HoC<T2, T3>, HoC3: HoC<T1, T2>, HoC4: HoC<PropType, T1>): C<T4>
  export function registerComponent<PropType, T1, T2, T3, T4, T5>(name: string, rawComponent: C<PropType>, HoC1: HoC<T4, T5>, HoC2: HoC<T3, T4>, HoC3: HoC<T2, T3>, HoC4: HoC<T1, T2>, HoC5: HoC<PropType, T1>): C<T5>
  export function registerComponent<PropType, T1, T2, T3, T4, T5, T6>(name: string, rawComponent: C<PropType>, HoC1: HoC<T5, T6>, HoC2: HoC<T4, T5>, HoC3: HoC<T3, T4>, HoC4: HoC<T2, T3>, HoC5: HoC<T1, T2>, HoC6: HoC<PropType, T1>): C<T6>
  export function registerComponent<PropType, T1, T2, T3, T4, T5, T6, T7>(name: string, rawComponent: C<PropType>, HoC1:HoC<T6, T7>, HoC2: HoC<T5, T6>, HoC3: HoC<T4, T5>, HoC4: HoC<T3, T4>, HoC5: HoC<T2, T3>, HoC6: HoC<T1, T2>, ...hocs: HoC<PropType, T1>[]): C<T7>
  
  export const Utils: any;
  export const getSetting: any;
  export const getCollection: any;
  export const getFragment: any;
  export const registerFragment: any;
  export const getFragmentName: any;
  export const getAllFragmentNames: any;
  export const getCollectionName: any;
  export const addCallback: any;
  export const runCallbacks: any;
  export const runCallbacksAsync: any;
  export const newMutation: any;
{'fraction_non_alphanumeric': 0.14676616915422885, 'fraction_numerical': 0.046849087893864015, 'mean_word_length': 6.515576323987539, 'pattern_counts': {'":': 0, '<': 111, '<?xml version=': 0, '>': 112, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5700089', 'n_tokens_mistral': 1970, 'n_tokens_neox': 1919, 'n_words': 504}