text: module.exports = {
    extends: [
      'eslint:recommended',
      'plugin:@typescript-eslint/eslint-recommended',
      'plugin:@typescript-eslint/recommended',
      'plugin:prettier/recommended',
      'plugin:react/recommended'
    ],
    settings: {
      react: {
        createClass: "createReactClass", // Regex for Component Factory to use,
                                           // default to "createReactClass"
        pragma: "React",  // Pragma to use, default to "React"
        fragment: "Fragment",  // Fragment to use (may be a property of <pragma>), default to "Fragment"
        version: "detect", // React version. "detect" automatically picks the version you have installed.
                             // You can also use `16.0`, `16.3`, etc, if you want to override the detected value.
                             // default to latest and warns if missing
                             // It will default to "detect" in the future
        flowVersion: "0.53" // Flow version
      }
    },
    parser: '@typescript-eslint/parser',
    parserOptions: {
      project: 'tsconfig.json',
      sourceType: 'module'
    },
    plugins: ['@typescript-eslint', 'react'],
    rules: {
      '@typescript-eslint/interface-name-prefix': [
        'error',
        { prefixWithI: 'always' }
      ],
      '@typescript-eslint/camelcase': 'off',
      '@typescript-eslint/no-unused-vars': ['warn', { args: 'none' }],
      '@typescript-eslint/no-explicit-any': 'off',
      '@typescript-eslint/no-namespace': 'off',
      '@typescript-eslint/no-use-before-define': 'off',
      '@typescript-eslint/no-control-regex': 'off',
      '@typescript-eslint/quotes': [
        'error',
        'single',
        { avoidEscape: true, allowTemplateLiterals: false }
      ],
      curly: ['error', 'all'],
      eqeqeq: 'error',
      'prefer-arrow-callback': 'error'
    },
    ignorePatterns: ['.eslintrc.js']
  };
  