{
    "extends": "tslint:recommended",
    "rules": {
        "array-type": [true, "array"],
        "ban-types": {
            "options": [
                ["Object", "Avoid using the `Object` type. Did you mean `object`?"],
                [
                    "Function",
                    "Avoid using the `Function` type. Prefer a specific function type, like `() => void`, or use `ts.AnyFunction`."
                ],
                ["Boolean", "Avoid using the `Boolean` type. Did you mean `boolean`?"],
                ["Number", "Avoid using the `Number` type. Did you mean `number`?"],
                ["String", "Avoid using the `String` type. Did you mean `string`?"]
            ]
        },
        "class-name": true,
        "comment-format": [true, "check-space"],
        "curly": [true, "ignore-same-line"],
        "indent": [true, "spaces", 2],
        "interface-name": [true, "never-prefix"],
        "interface-over-type-literal": true,
        "jsdoc-format": true,
        "no-inferrable-types": true,
        "no-internal-module": true,
        "no-null-keyword": false,
        "no-switch-case-fall-through": true,
        "no-trailing-whitespace": [true, "ignore-template-strings"],
        "no-var-keyword": true,
        "object-literal-shorthand": true,
        "one-line": [true, "check-open-brace", "check-whitespace"],
        "prefer-const": true,
        "quotemark": [true, "single", "avoid-escape", "avoid-template"],
        "semicolon": [true, "always", "ignore-bound-class-methods"],
        "space-within-parens": true,
        "triple-equals": true,
        "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"
            }
        ],
        "whitespace": [true, "check-branch", "check-decl", "check-operator", "check-module", "check-separator", "check-type"],
        "no-implicit-dependencies": [true, "dev"],
        "object-literal-key-quotes": [true, "consistent-as-needed"],
        "variable-name": [true, "ban-keywords", "check-format", "allow-leading-underscore"],
        "arrow-parens": false,
        "arrow-return-shorthand": false,
        "forin": false,
        "member-access": false,
        "no-conditional-assignment": false,
        "no-console": false,
        "no-debugger": false,
        "no-empty-interface": false,
        "no-eval": false,
        "no-object-literal-type-assertion": false,
        "no-shadowed-variable": false,
        "no-submodule-imports": false,
        "no-var-requires": false,
        "ordered-imports": false,
        "prefer-conditional-expression": false,
        "radix": false,
        "trailing-comma": false,
        "align": false,
        "eofline": false,
        "max-line-length": false,
        "no-consecutive-blank-lines": false,
        "space-before-function-paren": false,
        "ban-comma-operator": false,
        "max-classes-per-file": false,
        "member-ordering": false,
        "no-angle-bracket-type-assertion": false,
        "no-bitwise": false,
        "no-namespace": false,
        "no-reference": false,
        "object-literal-sort-keys": false,
        "one-variable-per-declaration": false,
        "unified-signatures": false
    }
}
