<commit_before>import * as React from "react";

import OnChangeArgsMultiSelect = ReactResponsiveSelect.OnChangeArgsMultiSelect;
import OnChangeArgsSingleSelect = ReactResponsiveSelect.OnChangeArgsSingleSelect;
import ReactResponsiveSelectOption = ReactResponsiveSelect.ReactResponsiveSelectOption;
import ReactResponsiveSelectProps = ReactResponsiveSelect.ReactResponsiveSelectProps;

export {
  OnChangeArgsMultiSelect,
  OnChangeArgsSingleSelect,
  ReactResponsiveSelectOption,
  ReactResponsiveSelectProps,
};

export default ReactResponsiveSelect.ReactResponsiveSelect;

declare namespace ReactResponsiveSelect {
  interface ReactResponsiveSelectProps {
    name: string;
    options: ReactResponsiveSelectOption[];
    onSubmit?: () => void;
    onChange?: (changes: OnChangeArgsSingleSelect | OnChangeArgsMultiSelect) => void;
    caretIcon?: JSX.Element | string;
    selectedValue?: string;
    prefix?: string;
    disabled?: boolean;
    customLabelRenderer?: (
      selected: ReactResponsiveSelectOption | { options: ReactResponsiveSelectOption[] }
    ) => JSX.Element | string;
    multiselect?: boolean;
    selectedValues?: string[];
  }

  interface OnChangeArgsSingleSelect {
    altered: boolean;
    text: string;
    name: string;
    value: string;
  }

  interface OnChangeArgsMultiSelect {
    altered: boolean;
    options: ReactResponsiveSelectOption[];
  }

  interface ReactResponsiveSelectOption {
    text: string;
    value: string;
    markup?: JSX.Element;
    disabled?: boolean;
  }

  interface CustomRendererReactResponsiveSelectOption {
    text: string;
    value: string;
    markup?: JSX.Element;
    disabled?: boolean;
  }

  export class ReactResponsiveSelect extends React.Component<ReactResponsiveSelectProps> {}
}<commit_msg>Refactor types<commit_after>import * as React from "react";

import OnChangeMultiSelect = ReactResponsiveSelect.IOnChangeMultiSelect;
import OnChangeSingleSelect = ReactResponsiveSelect.IOnChangeSingleSelect;
import ReactResponsiveSelectOption = ReactResponsiveSelect.IOption;
import Props = ReactResponsiveSelect.IProps;
import CustomLabelRendererSelectedOption = ReactResponsiveSelect.ICustomLabelRendererSelectedOption;
import CustomLabelRendererSelectedOptions = ReactResponsiveSelect.ICustomLabelRendererSelectedOptions;

export {
  OnChangeMultiSelect,
  OnChangeSingleSelect,
  ReactResponsiveSelectOption,
  Props,
  CustomLabelRendererSelectedOption,
  CustomLabelRendererSelectedOptions,
};

export default ReactResponsiveSelect.ReactResponsiveSelect;

declare namespace ReactResponsiveSelect {
  type JSXOutput = JSX.Element | string;

  interface IProps {
    name: string;
    options: IOption[];
    onSubmit?: () => void;
    onChange?: (changes: IOnChangeSingleSelect | IOnChangeMultiSelect) => void;
    caretIcon?: JSXOutput;
    selectedValue?: string;
    prefix?: string;
    disabled?: boolean;
    customLabelRenderer?: (
      selected: ICustomLabelRendererSelectedOption | ICustomLabelRendererSelectedOptions
    ) => JSXOutput;
    multiselect?: boolean;
    selectedValues?: string[];
  }

  interface IOption {
    text: string;
    value: string;
    markup?: JSXOutput;
    disabled?: boolean;
  }

  interface IOnChange {
    altered: boolean;
  }

  interface IOnChangeSingleSelect extends IOnChange {
    text: string;
    name: string;
    value: string;
  }

  interface IOnChangeMultiSelect extends IOnChange {
    options: IOption[];
  }

  interface ICustomLabelRendererSelectedOption extends IOption {}

  interface ICustomLabelRendererSelectedOptions {
    options: IOption[];
  }

  export class ReactResponsiveSelect extends React.Component<IProps> {}
}
{'fraction_non_alphanumeric': 0.07608399236433051, 'fraction_numerical': 0.0, 'mean_word_length': 5.133779264214047, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 11, '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': '5160119', 'n_tokens_mistral': 1016, 'n_tokens_neox': 1019, 'n_words': 216}