{
  "extends": [
    "./basic.json"
  ],
  "rules": {
    // re-enable what's disabled in basic.json
    "interface-name": true,
    "no-empty-interface": true,
    "object-literal-sort-keys": true,
    "interface-over-type-literal": true,
    "no-var-requires": true,
    "no-duplicate-string": true,
    "no-small-switch": true,
    "no-useless-intersection": true,
    "member-ordering": [true, {"order": "fields-first"}],
    "no-parameter-reassignment": true,

    // allow sub-module imports from most used modules
    "no-submodule-imports": [true, "fp-ts", "io-ts", "italia-ts-commons"],

    // Disallows use of the null keyword literal.
    // "no-null-keyword": true,
    // Disallows usages of any as a type declaration.
    "no-any": true,

    // tslint-immutable
    "typedef": [true, "call-signature"],
    "no-delete": true

    // tslint-immutable: Immutability rules
    // "readonly-keyword": true,

    // tslint-immutable: Functional style rules
    // "no-this": true,
    // "no-class": true,
    // "no-mixed-interface": false,
  }
}
