import { Component, JsonFile, Project } from "projen"; import { TypeScriptProject, TypeScriptProjectOptions } from "projen/lib/typescript"; import { DeepRequired } from "../util/deep-required"; import { Dynamic } from "../util/dynamic"; /** * option to enable or disable jsonC in eslint */ export declare type EslintJsonCOptions = { /** * enable or disable jsonC in eslint * * @default true */ eslintJsonC?: boolean; }; /** * adds jsonC to eslint if neither eslint nor eslintJsonC are disabled */ export declare class EslintJsonC extends Component { static defaultProjectOptions: Required>; static defaultOptions: Dynamic, TypeScriptProject>; /** * Finds the EslintJsonC instance belonging to this project * * @param project the project to search * @returns the found EslintJsonC instance or undefined */ static of(project: Project): EslintJsonC | undefined; options: DeepRequired; configFile?: JsonFile; typeScriptProject: TypeScriptProject; /** * adds jsonC to eslint if neither eslint nor eslintJsonC are disabled * * @param project the project to add to * @param options - see `EslintJsonCOptions` */ constructor(project: TypeScriptProject, options?: Dynamic); /** * creates config file for linting JSON and adds task */ private setupJsonLinting; /** * update .eslintrc.json to use jsonC and then tell * vscode to lint json files */ private setupVscodeToLintJson; }