type JsxChildElementSpacingRuleOptions = [] type JsxClosingBracketLocationSchema0 = | ( | 'after-props' | 'props-aligned' | 'tag-aligned' | 'line-aligned' ) | { location?: | 'after-props' | 'props-aligned' | 'tag-aligned' | 'line-aligned' } | { nonEmpty?: | ( | 'after-props' | 'props-aligned' | 'tag-aligned' | 'line-aligned' ) | false selfClosing?: | ( | 'after-props' | 'props-aligned' | 'tag-aligned' | 'line-aligned' ) | false } type JsxClosingBracketLocationRuleOptions = [ JsxClosingBracketLocationSchema0?, ] type JsxClosingTagLocationSchema0 = | 'tag-aligned' | 'line-aligned' type JsxClosingTagLocationRuleOptions = [ JsxClosingTagLocationSchema0?, ] type JsxCurlyBracePresenceSchema0 = | { props?: 'always' | 'never' | 'ignore' children?: 'always' | 'never' | 'ignore' propElementValues?: 'always' | 'never' | 'ignore' } | ('always' | 'never' | 'ignore') type JsxCurlyBracePresenceRuleOptions = [ JsxCurlyBracePresenceSchema0?, ] type JsxCurlyNewlineSchema0 = | ('consistent' | 'never') | { singleline?: 'consistent' | 'require' | 'forbid' multiline?: 'consistent' | 'require' | 'forbid' } type JsxCurlyNewlineRuleOptions = [ JsxCurlyNewlineSchema0?, ] type JsxCurlySpacingSchema0 = | [] | [ | (BasicConfig & { attributes?: BasicConfigOrBoolean children?: BasicConfigOrBoolean [k: string]: unknown }) | ('always' | 'never'), ] | [ ( | (BasicConfig & { attributes?: BasicConfigOrBoolean children?: BasicConfigOrBoolean [k: string]: unknown }) | ('always' | 'never') ), { allowMultiline?: boolean spacing?: { objectLiterals?: 'always' | 'never' [k: string]: unknown } }, ] type BasicConfigOrBoolean = BasicConfig | boolean interface BasicConfig { when?: 'always' | 'never' allowMultiline?: boolean spacing?: { objectLiterals?: 'always' | 'never' [k: string]: unknown } [k: string]: unknown } type JsxCurlySpacingRuleOptions = JsxCurlySpacingSchema0 type JsxEqualsSpacingSchema0 = 'always' | 'never' type JsxEqualsSpacingRuleOptions = [ JsxEqualsSpacingSchema0?, ] type JsxFirstPropNewLineSchema0 = | 'always' | 'never' | 'multiline' | 'multiline-multiprop' | 'multiprop' type JsxFirstPropNewLineRuleOptions = [ JsxFirstPropNewLineSchema0?, ] type JsxFunctionCallNewlineSchema0 = | 'always' | 'multiline' type JsxFunctionCallNewlineRuleOptions = [ JsxFunctionCallNewlineSchema0?, ] type JsxIndentPropsSchema0 = | ('tab' | 'first') | number | { indentMode?: ('tab' | 'first') | number ignoreTernaryOperator?: boolean [k: string]: unknown } type JsxIndentPropsRuleOptions = [ JsxIndentPropsSchema0?, ] type JsxIndentSchema0 = 'tab' | number interface JsxIndentSchema1 { checkAttributes?: boolean indentLogicalExpressions?: boolean } type JsxIndentRuleOptions = [ JsxIndentSchema0?, JsxIndentSchema1?, ] type JsxMaxPropsPerLineSchema0 = | { maximum?: { single?: number multi?: number [k: string]: unknown } } | { maximum?: number when?: 'always' | 'multiline' } type JsxMaxPropsPerLineRuleOptions = [ JsxMaxPropsPerLineSchema0?, ] interface JsxNewlineSchema0 { prevent?: boolean allowMultilines?: boolean } type JsxNewlineRuleOptions = [JsxNewlineSchema0?] interface JsxOneExpressionPerLineSchema0 { allow?: | 'none' | 'literal' | 'single-child' | 'single-line' | 'non-jsx' } type JsxOneExpressionPerLineRuleOptions = [ JsxOneExpressionPerLineSchema0?, ] interface JsxPascalCaseSchema0 { allowAllCaps?: boolean allowLeadingUnderscore?: boolean allowNamespace?: boolean ignore?: string[] } type JsxPascalCaseRuleOptions = [ JsxPascalCaseSchema0?, ] type JsxPropsNoMultiSpacesRuleOptions = [] interface JsxSelfClosingCompSchema0 { component?: boolean html?: boolean } type JsxSelfClosingCompRuleOptions = [ JsxSelfClosingCompSchema0?, ] interface JsxSortPropsSchema0 { callbacksLast?: boolean shorthandFirst?: boolean shorthandLast?: boolean multiline?: 'ignore' | 'first' | 'last' ignoreCase?: boolean noSortAlphabetically?: boolean reservedFirst?: string[] | boolean reservedLast?: string[] locale?: string } type JsxSortPropsRuleOptions = [JsxSortPropsSchema0?] interface JsxTagSpacingSchema0 { closingSlash?: 'always' | 'never' | 'allow' beforeSelfClosing?: | 'always' | 'proportional-always' | 'never' | 'allow' afterOpening?: | 'always' | 'allow-multiline' | 'never' | 'allow' beforeClosing?: | 'always' | 'proportional-always' | 'never' | 'allow' } type JsxTagSpacingRuleOptions = [ JsxTagSpacingSchema0?, ] interface JsxWrapMultilinesSchema0 { declaration?: | true | false | 'ignore' | 'parens' | 'parens-new-line' assignment?: | true | false | 'ignore' | 'parens' | 'parens-new-line' return?: | true | false | 'ignore' | 'parens' | 'parens-new-line' arrow?: | true | false | 'ignore' | 'parens' | 'parens-new-line' condition?: | true | false | 'ignore' | 'parens' | 'parens-new-line' logical?: | true | false | 'ignore' | 'parens' | 'parens-new-line' prop?: | true | false | 'ignore' | 'parens' | 'parens-new-line' propertyValue?: | true | false | 'ignore' | 'parens' | 'parens-new-line' } type JsxWrapMultilinesRuleOptions = [ JsxWrapMultilinesSchema0?, ] interface RuleOptions { /** * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions * @see https://eslint.style/rules/jsx/jsx-child-element-spacing */ '@stylistic/jsx/jsx-child-element-spacing': JsxChildElementSpacingRuleOptions /** * Enforce closing bracket location in JSX * @see https://eslint.style/rules/jsx/jsx-closing-bracket-location */ '@stylistic/jsx/jsx-closing-bracket-location': JsxClosingBracketLocationRuleOptions /** * Enforce closing tag location for multiline JSX * @see https://eslint.style/rules/jsx/jsx-closing-tag-location */ '@stylistic/jsx/jsx-closing-tag-location': JsxClosingTagLocationRuleOptions /** * Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes * @see https://eslint.style/rules/jsx/jsx-curly-brace-presence */ '@stylistic/jsx/jsx-curly-brace-presence': JsxCurlyBracePresenceRuleOptions /** * Enforce consistent linebreaks in curly braces in JSX attributes and expressions * @see https://eslint.style/rules/jsx/jsx-curly-newline */ '@stylistic/jsx/jsx-curly-newline': JsxCurlyNewlineRuleOptions /** * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions * @see https://eslint.style/rules/jsx/jsx-curly-spacing */ '@stylistic/jsx/jsx-curly-spacing': JsxCurlySpacingRuleOptions /** * Enforce or disallow spaces around equal signs in JSX attributes * @see https://eslint.style/rules/jsx/jsx-equals-spacing */ '@stylistic/jsx/jsx-equals-spacing': JsxEqualsSpacingRuleOptions /** * Enforce proper position of the first property in JSX * @see https://eslint.style/rules/jsx/jsx-first-prop-new-line */ '@stylistic/jsx/jsx-first-prop-new-line': JsxFirstPropNewLineRuleOptions /** * Enforce line breaks before and after JSX elements when they are used as arguments to a function. * @see https://eslint.style/rules/jsx/jsx-function-call-newline */ '@stylistic/jsx/jsx-function-call-newline': JsxFunctionCallNewlineRuleOptions /** * Enforce JSX indentation. Deprecated, use `indent` rule instead. * @see https://eslint.style/rules/jsx/jsx-indent */ '@stylistic/jsx/jsx-indent': JsxIndentRuleOptions /** * Enforce props indentation in JSX * @see https://eslint.style/rules/jsx/jsx-indent-props */ '@stylistic/jsx/jsx-indent-props': JsxIndentPropsRuleOptions /** * Enforce maximum of props on a single line in JSX * @see https://eslint.style/rules/jsx/jsx-max-props-per-line */ '@stylistic/jsx/jsx-max-props-per-line': JsxMaxPropsPerLineRuleOptions /** * Require or prevent a new line after jsx elements and expressions. * @see https://eslint.style/rules/jsx/jsx-newline */ '@stylistic/jsx/jsx-newline': JsxNewlineRuleOptions /** * Require one JSX element per line * @see https://eslint.style/rules/jsx/jsx-one-expression-per-line */ '@stylistic/jsx/jsx-one-expression-per-line': JsxOneExpressionPerLineRuleOptions /** * Enforce PascalCase for user-defined JSX components * @see https://eslint.style/rules/jsx/jsx-pascal-case */ '@stylistic/jsx/jsx-pascal-case': JsxPascalCaseRuleOptions /** * Disallow multiple spaces between inline JSX props * @see https://eslint.style/rules/jsx/jsx-props-no-multi-spaces */ '@stylistic/jsx/jsx-props-no-multi-spaces': JsxPropsNoMultiSpacesRuleOptions /** * Disallow extra closing tags for components without children * @see https://eslint.style/rules/jsx/jsx-self-closing-comp */ '@stylistic/jsx/jsx-self-closing-comp': JsxSelfClosingCompRuleOptions /** * Enforce props alphabetical sorting * @see https://eslint.style/rules/jsx/jsx-sort-props */ '@stylistic/jsx/jsx-sort-props': JsxSortPropsRuleOptions /** * Enforce whitespace in and around the JSX opening and closing brackets * @see https://eslint.style/rules/jsx/jsx-tag-spacing */ '@stylistic/jsx/jsx-tag-spacing': JsxTagSpacingRuleOptions /** * Disallow missing parentheses around multiline JSX * @see https://eslint.style/rules/jsx/jsx-wrap-multilines */ '@stylistic/jsx/jsx-wrap-multilines': JsxWrapMultilinesRuleOptions } interface UnprefixedRuleOptions { /** * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions * @see https://eslint.style/rules/jsx/jsx-child-element-spacing */ 'jsx-child-element-spacing': JsxChildElementSpacingRuleOptions /** * Enforce closing bracket location in JSX * @see https://eslint.style/rules/jsx/jsx-closing-bracket-location */ 'jsx-closing-bracket-location': JsxClosingBracketLocationRuleOptions /** * Enforce closing tag location for multiline JSX * @see https://eslint.style/rules/jsx/jsx-closing-tag-location */ 'jsx-closing-tag-location': JsxClosingTagLocationRuleOptions /** * Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes * @see https://eslint.style/rules/jsx/jsx-curly-brace-presence */ 'jsx-curly-brace-presence': JsxCurlyBracePresenceRuleOptions /** * Enforce consistent linebreaks in curly braces in JSX attributes and expressions * @see https://eslint.style/rules/jsx/jsx-curly-newline */ 'jsx-curly-newline': JsxCurlyNewlineRuleOptions /** * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions * @see https://eslint.style/rules/jsx/jsx-curly-spacing */ 'jsx-curly-spacing': JsxCurlySpacingRuleOptions /** * Enforce or disallow spaces around equal signs in JSX attributes * @see https://eslint.style/rules/jsx/jsx-equals-spacing */ 'jsx-equals-spacing': JsxEqualsSpacingRuleOptions /** * Enforce proper position of the first property in JSX * @see https://eslint.style/rules/jsx/jsx-first-prop-new-line */ 'jsx-first-prop-new-line': JsxFirstPropNewLineRuleOptions /** * Enforce line breaks before and after JSX elements when they are used as arguments to a function. * @see https://eslint.style/rules/jsx/jsx-function-call-newline */ 'jsx-function-call-newline': JsxFunctionCallNewlineRuleOptions /** * Enforce JSX indentation. Deprecated, use `indent` rule instead. * @see https://eslint.style/rules/jsx/jsx-indent */ 'jsx-indent': JsxIndentRuleOptions /** * Enforce props indentation in JSX * @see https://eslint.style/rules/jsx/jsx-indent-props */ 'jsx-indent-props': JsxIndentPropsRuleOptions /** * Enforce maximum of props on a single line in JSX * @see https://eslint.style/rules/jsx/jsx-max-props-per-line */ 'jsx-max-props-per-line': JsxMaxPropsPerLineRuleOptions /** * Require or prevent a new line after jsx elements and expressions. * @see https://eslint.style/rules/jsx/jsx-newline */ 'jsx-newline': JsxNewlineRuleOptions /** * Require one JSX element per line * @see https://eslint.style/rules/jsx/jsx-one-expression-per-line */ 'jsx-one-expression-per-line': JsxOneExpressionPerLineRuleOptions /** * Enforce PascalCase for user-defined JSX components * @see https://eslint.style/rules/jsx/jsx-pascal-case */ 'jsx-pascal-case': JsxPascalCaseRuleOptions /** * Disallow multiple spaces between inline JSX props * @see https://eslint.style/rules/jsx/jsx-props-no-multi-spaces */ 'jsx-props-no-multi-spaces': JsxPropsNoMultiSpacesRuleOptions /** * Disallow extra closing tags for components without children * @see https://eslint.style/rules/jsx/jsx-self-closing-comp */ 'jsx-self-closing-comp': JsxSelfClosingCompRuleOptions /** * Enforce props alphabetical sorting * @see https://eslint.style/rules/jsx/jsx-sort-props */ 'jsx-sort-props': JsxSortPropsRuleOptions /** * Enforce whitespace in and around the JSX opening and closing brackets * @see https://eslint.style/rules/jsx/jsx-tag-spacing */ 'jsx-tag-spacing': JsxTagSpacingRuleOptions /** * Disallow missing parentheses around multiline JSX * @see https://eslint.style/rules/jsx/jsx-wrap-multilines */ 'jsx-wrap-multilines': JsxWrapMultilinesRuleOptions } export type { RuleOptions, UnprefixedRuleOptions };