{
    "defaultSeverity": "warning",
    "extends": [
        "tslint:recommended"
    ],
    "linterOptions": {
        "exclude": [
            "tests/**",
            "src/enums/**"
        ]
    },
    "jsRules": {},
    "rules": {
        "adjacent-overload-signatures": true,
        "align": [true,
            "parameters",
            "statements"
        ],
        "array-type": [true, "array-simple"],
        "arrow-parens": true,
        "class-name": true,
        "comment-format": [true,
            "check-space"
        ],
        "curly": true,
        "cyclomatic-complexity": [false],
        "eofline": true,
        "file-header": [
            true,
            {
                "match": "Copyright(\\s\\d{4}(-\\d{4})?)? Amazon.com, Inc. or its affiliates. All Rights Reserved.[\\s\\S]*",
                "default": "Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\nSPDX-License-Identifier: Apache-2.0"
            }
        ],
        "forin": true,
        "indent": [true, "spaces"],
        "interface-name": [false, "always-prefix"],
        "jsdoc-format": true,
        "label-position": true,
        "max-classes-per-file": [false, 1],
        "max-line-length": [true, 120],
        "member-access": true,
        "member-ordering": [false, {
            "order": "instance-sandwich"
        }],
        "new-parens": true,
        "no-any": false,
        "no-arg": true,
        "no-bitwise": false,
        "no-conditional-assignment": true,
        "no-consecutive-blank-lines": [true],
        "no-console": [true,
            "time",
            "timeEnd",
            "trace"
        ],
        "no-construct": true,
        "no-debugger": true,
        "no-empty": false,
        "no-eval": true,
        "no-internal-module": true,
        "no-namespace": true,
        "no-parameter-properties": false,
        "no-reference": false,
        "no-shadowed-variable": true,
        "no-string-literal": false,
        "no-switch-case-fall-through": false,
        "no-trailing-whitespace": true,
        "no-unsafe-finally": true,
        "no-unused-expression": true,
        "no-unnecessary-initializer": false,
        // "no-unused-variable": true,
        // disable this rule as it is very heavy performance-wise and not that useful
        "no-use-before-declare": false,
        "no-var-keyword": true,
        "no-var-requires": false,
        "object-literal-key-quotes": [true, "consistent-as-needed"],
        "object-literal-shorthand": true,
        "object-literal-sort-keys": false,
        "one-line": [true,
            "check-catch",
            "check-else",
            "check-finally",
            "check-open-brace",
            "check-whitespace"
        ],
        "one-variable-per-declaration": [true,
            "ignore-for-loop"
        ],
        "only-arrow-functions": [true, "allow-declarations"],
        "ordered-imports": [true, {
            "import-sources-order": "case-insensitive",
            "named-imports-order": "case-insensitive"
        }],
        "prefer-const": true,
        "prefer-for-of": true,
        "quotemark": [true, "single", "avoid-escape"],
        "radix": true,
        "semicolon": [true, "always"],
        "switch-default": true,
        "trailing-comma": [true, {
            "multiline": "never",
            "singleline": "never"
        }],
        "triple-equals": [true, "allow-null-check"],
        "typedef": [false],
        "typedef-whitespace": [true, {
            "call-signature": "nospace",
            "index-signature": "nospace",
            "parameter": "nospace",
            "property-declaration": "nospace",
            "variable-declaration": "nospace"
        }, {
            "call-signature": "onespace",
            "index-signature": "onespace",
            "parameter": "onespace",
            "property-declaration": "onespace",
            "variable-declaration": "onespace"
        }],
        "use-isnan": true,
        "variable-name": [true,
            "ban-keywords",
            "check-format",
            "allow-pascal-case",
            "allow-leading-underscore"
        ],
        "whitespace": [true,
            "check-branch",
            "check-decl",
            "check-operator",
            "check-separator",
            "check-type",
            "check-typecast"
        ]
    },
    "rulesDirectory": []
}
