/*! * This bundle includes code from the following third-party projects. * Full notices: https://github.com/howmanysmall/small-rules/blob/main/THIRD-PARTY-NOTICES.md * * anti-slop * Copyright (c) 2026 Dillon Mulroy * SPDX-License-Identifier: MIT * * MIT License * * Copyright (c) 2026 Dillon Mulroy * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * * anti-slop shared helpers * Copyright (c) 2026 Dillon Mulroy * SPDX-License-Identifier: MIT * * MIT License * * Copyright (c) 2026 Dillon Mulroy * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * * ESLint Stylistic * Copyright OpenJS Foundation and other contributors, * Copyright (c) 2023-PRESENT ESLint Stylistic contributors * SPDX-License-Identifier: MIT * * MIT License * * Copyright OpenJS Foundation and other contributors, * Copyright (c) 2023-PRESENT ESLint Stylistic contributors * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * * eslint-plugin-roblox-ts * Copyright (c) 2025-PRESENT roblox-ts * SPDX-License-Identifier: MIT * * MIT License * * Copyright (c) 2025-PRESENT roblox-ts * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ //#region src/utilities/directive-comments.d.ts interface DirectiveKindsSchema { readonly description: string; readonly items: { readonly type: "string"; }; readonly type: "array"; readonly uniqueItems: true; } //#endregion //#region src/rules/react/no-useless-use-memo.d.ts export declare const enum DependencyMode { Aggressive = "aggressive", EmptyOrOmitted = "empty-or-omitted", NonUpdating = "non-updating" } //#endregion //#region src/index.d.ts declare const smallRules: import("oxlint-plugin-utilities").Plugin<{ "array-type-generic": import("oxlint-plugin-utilities").CreateOnceRule; "ban-instances": import("oxlint-plugin-utilities").CreateRule; "ban-react-fc": import("oxlint-plugin-utilities").CreateOnceRule; "ban-types": import("oxlint-plugin-utilities").CreateRule; "consistent-compound-words": import("oxlint-plugin-utilities").CreateRule; curly: import("oxlint-plugin-utilities").CreateRule; "directive-disable-enable-pair": import("oxlint-plugin-utilities").CreateRule; "directive-no-aggregating-enable": import("oxlint-plugin-utilities").CreateRule; "directive-no-duplicate-disable": import("oxlint-plugin-utilities").CreateRule; "directive-no-restricted-disable": import("oxlint-plugin-utilities").CreateRule<{ readonly items: { type: "string"; }; readonly type: "array"; readonly uniqueItems: true; }, "disallow", undefined>; "directive-no-unlimited-disable": import("oxlint-plugin-utilities").CreateRule; "directive-no-unused-enable": import("oxlint-plugin-utilities").CreateRule; "directive-no-use": import("oxlint-plugin-utilities").CreateRule; "directive-require-description": import("oxlint-plugin-utilities").CreateRule; "enforce-ianitor-check-type": import("oxlint-plugin-utilities").CreateRule annotations are reported."; readonly minimum: 1; readonly type: "number"; }; readonly errorThreshold: { readonly default: number; readonly description: "Complexity score used to cap recursive analysis before reporting is determined."; readonly minimum: 1; readonly type: "number"; }; readonly interfacePenalty: { readonly default: number; readonly description: "Complexity penalty applied when an Ianitor validator builds an interface-like shape."; readonly minimum: 1; readonly type: "number"; }; readonly performanceMode: { readonly default: boolean; readonly description: "Whether repeated type nodes are cached during complexity analysis."; readonly type: "boolean"; }; }; readonly type: "object"; }], "complexInterfaceNeedsCheck" | "missingIanitorCheckType", undefined>; "isolated-functions": import("oxlint-plugin-utilities").CreateRule; "memoized-effect-dependencies": import("oxlint-plugin-utilities").CreateRule; "no-adjust-state-on-prop-change": import("oxlint-plugin-utilities").CreateRule; "no-array-constructor-elements": import("oxlint-plugin-utilities").CreateRule; "no-array-constructor-index-assignment": import("oxlint-plugin-utilities").CreateRule; "no-array-size-assignment": import("oxlint-plugin-utilities").CreateRule; "no-async-constructor": import("oxlint-plugin-utilities").CreateRule; "no-async-in-system": import("oxlint-plugin-utilities").CreateRule; "no-cascading-set-state": import("oxlint-plugin-utilities").CreateRule; "no-chain-state-updates": import("oxlint-plugin-utilities").CreateRule; "no-chained-type-assertions": import("oxlint-plugin-utilities").CreateOnceRule; "no-color3-constructor": import("oxlint-plugin-utilities").CreateRule; "no-commented-code": import("oxlint-plugin-utilities").CreateRule; "no-conditional-empty-object-spread": import("oxlint-plugin-utilities").CreateOnceRule; "no-constant-condition-with-break": import("oxlint-plugin-utilities").CreateRule; "no-dead-store": import("oxlint-plugin-utilities").CreateRule; "no-derived-state": import("oxlint-plugin-utilities").CreateRule; "no-discarded-rejection": import("oxlint-plugin-utilities").CreateRule; "no-error": import("oxlint-plugin-utilities").CreateRule; "no-event-handler": import("oxlint-plugin-utilities").CreateRule; "no-events-in-events-callback": import("oxlint-plugin-utilities").CreateRule; "no-external-store-subscription": import("oxlint-plugin-utilities").CreateRule; "no-filter-map-chain": import("oxlint-plugin-utilities").CreateRule; "no-floating-point-equality": import("oxlint-plugin-utilities").CreateRule; "no-giant-component": import("oxlint-plugin-utilities").CreateRule; "no-god-components": import("oxlint-plugin-utilities").CreateRule; "no-has-before-remove-in-jecs": import("oxlint-plugin-utilities").CreateRule; "no-ianitor-in-function-body": import("oxlint-plugin-utilities").CreateRule; "no-ianitor-success-access": import("oxlint-plugin-utilities").CreateRule; "no-identity-map": import("oxlint-plugin-utilities").CreateRule; "no-increment-decrement": import("oxlint-plugin-utilities").CreateRule; "no-initialize-state": import("oxlint-plugin-utilities").CreateRule; "no-inline-property-on-memo-component": import("oxlint-plugin-utilities").CreateRule; "no-instance-methods-without-this": import("oxlint-plugin-utilities").CreateRule; "no-jsx-spread-child": import("oxlint-plugin-utilities").CreateOnceRule; "no-known-value-widening": import("oxlint-plugin-utilities").CreateOnceRule; "no-loop-iterable-mutation": import("oxlint-plugin-utilities").CreateRule; "no-module-mocking": import("oxlint-plugin-utilities").CreateOnceRule; "no-native-properties-spread": import("oxlint-plugin-utilities").CreateRule; "no-nested-hook-calls": import("oxlint-plugin-utilities").CreateOnceRule; "no-new-instance-in-use-memo": import("oxlint-plugin-utilities").CreateRule; "no-object-parameters": import("oxlint-plugin-utilities").CreateOnceRule; "no-pass-data-to-parent": import("oxlint-plugin-utilities").CreateRule; "no-pass-live-state-to-parent": import("oxlint-plugin-utilities").CreateRule; "no-print": import("oxlint-plugin-utilities").CreateRule; "no-real-temporary-directory": import("oxlint-plugin-utilities").CreateRule; "no-recursive": import("oxlint-plugin-utilities").CreateRule; "no-reduce-accumulator-copy": import("oxlint-plugin-utilities").CreateOnceRule; "no-redundant-aspect-ratio-constraint": import("oxlint-plugin-utilities").CreateRule; "no-reflect-apply": import("oxlint-plugin-utilities").CreateOnceRule; "no-reflect-get": import("oxlint-plugin-utilities").CreateOnceRule; "no-render-helper-functions": import("oxlint-plugin-utilities").CreateRule; "no-reset-all-state-on-prop-change": import("oxlint-plugin-utilities").CreateRule; "no-restricted-property-assignment": import("oxlint-plugin-utilities").CreateRule; "no-runtime-in-type-files": import("oxlint-plugin-utilities").CreateRule; "no-runtime-typeof": import("oxlint-plugin-utilities").CreateOnceRule; "no-shape-in-symbol-names": import("oxlint-plugin-utilities").CreateOnceRule; "no-spec-file-extension": import("oxlint-plugin-utilities").CreateOnceRule; "no-static-react-create-element": import("oxlint-plugin-utilities").CreateRule; "no-table-create-map": import("oxlint-plugin-utilities").CreateRule; "no-task-wait": import("oxlint-plugin-utilities").CreateOnceRule; "no-test-timeout": import("oxlint-plugin-utilities").CreateRule; "no-trivial-assertions": import("oxlint-plugin-utilities").CreateRule; "no-underscore-react-props": import("oxlint-plugin-utilities").CreateOnceRule; "no-unknown-parameters": import("oxlint-plugin-utilities").CreateOnceRule; "no-unknown-returns": import("oxlint-plugin-utilities").CreateOnceRule; "no-unknown-type-aliases": import("oxlint-plugin-utilities").CreateOnceRule; "no-unsafe-dictionary-type": import("oxlint-plugin-utilities").CreateOnceRule; "no-unsupported-syntax": import("oxlint-plugin-utilities").CreateOnceRule; "no-unused-imports": import("oxlint-plugin-utilities").CreateRule; "no-unused-use-memo": import("oxlint-plugin-utilities").CreateRule; "no-use-memo-simple-expression": import("oxlint-plugin-utilities").CreateRule; "no-use-of-empty-return-value": import("oxlint-plugin-utilities").CreateRule; "no-useless-constants": import("oxlint-plugin-utilities").CreateRule; "no-useless-default": import("oxlint-plugin-utilities").CreateRule; "no-useless-empty-string-comparison": import("oxlint-plugin-utilities").CreateOnceRule; "no-useless-use-effect": import("oxlint-plugin-utilities").CreateRule; "no-useless-use-memo": import("oxlint-plugin-utilities").CreateRule; "no-useless-use-spring": import("oxlint-plugin-utilities").CreateRule; "no-variadic-spread": import("oxlint-plugin-utilities").CreateOnceRule; "no-warn": import("oxlint-plugin-utilities").CreateRule; "no-widen-then-assert": import("oxlint-plugin-utilities").CreateOnceRule; "only-type-imports": import("oxlint-plugin-utilities").CreateRule; "prefer-class-properties": import("oxlint-plugin-utilities").CreateRule; "prefer-constant-dispatch": import("oxlint-plugin-utilities").CreateRule; "prefer-context-stack": import("oxlint-plugin-utilities").CreateRule; "prefer-direct-hook-imports": import("oxlint-plugin-utilities").CreateRule; "prefer-early-return": import("oxlint-plugin-utilities").CreateRule; "prefer-expect-assertions": import("oxlint-plugin-utilities").CreateRule; "prefer-hoisted-jsx-elements": import("oxlint-plugin-utilities").CreateRule; "prefer-hoisted-jsx-object-properties": import("oxlint-plugin-utilities").CreateRule; "prefer-idiv": import("oxlint-plugin-utilities").CreateOnceRule; "prefer-local-portal-component": import("oxlint-plugin-utilities").CreateRule; "prefer-math-min-max": import("oxlint-plugin-utilities").CreateRule; "prefer-membership-filter-in-jecs": import("oxlint-plugin-utilities").CreateRule; "prefer-modding-inspect": import("oxlint-plugin-utilities").CreateRule; "prefer-module-scope-constants": import("oxlint-plugin-utilities").CreateRule; "prefer-native-collection-copy": import("oxlint-plugin-utilities").CreateRule; "prefer-optional-parameter": import("oxlint-plugin-utilities").CreateOnceRule; "prefer-padding-components": import("oxlint-plugin-utilities").CreateRule; "prefer-pascal-case-enums": import("oxlint-plugin-utilities").CreateOnceRule; "prefer-sequence-overloads": import("oxlint-plugin-utilities").CreateOnceRule; "prefer-single-world-query-in-jecs": import("oxlint-plugin-utilities").CreateRule; "prefer-singular-enums": import("oxlint-plugin-utilities").CreateOnceRule; "prefer-ternary-conditional-rendering": import("oxlint-plugin-utilities").CreateRule; "prefer-udim2-shorthand": import("oxlint-plugin-utilities").CreateRule; "prefer-use-reducer": import("oxlint-plugin-utilities").CreateRule; "prevent-abbreviations": import("oxlint-plugin-utilities").CreateRule; readonly defaultLabel: "default allow list"; readonly description: "Names that should be allowed even when they match a discouraged abbreviation."; readonly type: "object"; }; readonly allowPropertyAccess: { readonly default: string[]; readonly description: "Property names that may keep abbreviated member access."; readonly items: { readonly type: "string"; }; readonly type: "array"; }; readonly checkDefaultAndNamespaceImports: { readonly default: "internal"; readonly description: "Whether default and namespace import local names should be checked."; readonly enum: readonly [false, true, "internal"]; }; readonly checkFilenames: { readonly default: true; readonly description: "Whether file names should be checked for abbreviations."; readonly type: "boolean"; }; readonly checkProperties: { readonly default: false; readonly description: "Whether object, member, and JSX property names should be checked."; readonly type: "boolean"; }; readonly checkShorthandImports: { readonly default: "internal"; readonly description: "Whether renamed shorthand imports should be checked."; readonly enum: readonly [false, true, "internal"]; }; readonly checkShorthandProperties: { readonly default: true; readonly description: "Whether shorthand object property names should be checked."; readonly type: "boolean"; }; readonly checkVariables: { readonly default: true; readonly description: "Whether variable, function, class, and component names should be checked."; readonly type: "boolean"; }; readonly extendDefaultAllowList: { readonly default: true; readonly description: "Merge configured allowList entries with the default allow list."; readonly type: "boolean"; }; readonly extendDefaultReplacements: { readonly default: true; readonly description: "Merge configured replacements with the default replacement map."; readonly type: "boolean"; }; readonly ignore: { readonly default: string[]; readonly description: "Names or regular expression patterns that should be ignored."; readonly items: { readonly type: "string"; }; readonly type: "array"; }; readonly ignoreShorthands: { readonly default: readonly []; readonly description: "Shorthand names that should not be reported."; readonly items: { readonly type: "string"; }; readonly type: "array"; }; readonly replacements: { readonly additionalProperties: { readonly oneOf: readonly [{ readonly enum: readonly [false]; }, { readonly additionalProperties: { readonly type: "boolean"; }; readonly type: "object"; }]; }; readonly default: Record>; readonly defaultLabel: "default replacement map"; readonly description: "Replacement suggestions for discouraged names."; readonly type: "object"; }; readonly shorthands: { readonly additionalProperties: { readonly type: "string"; }; readonly default: { args: string; char: string; dt: string; plr: string; }; readonly defaultLabel: "default shorthands"; readonly description: "Shorthand names and the full names they should expand to."; readonly type: "object"; }; }; readonly type: "object"; }], "replace" | "suggestion", undefined>; "react-hooks-strict-return": import("oxlint-plugin-utilities").CreateRule; "require-async-suffix": import("oxlint-plugin-utilities").CreateRule; "require-module-level-instantiation": import("oxlint-plugin-utilities").CreateRule; "require-named-effect-functions": import("oxlint-plugin-utilities").CreateRule; "require-paired-calls": import("oxlint-plugin-utilities").CreateRule; "require-react-component-keys": import("oxlint-plugin-utilities").CreateRule; "require-react-display-names": import("oxlint-plugin-utilities").CreateRule; "require-readable-spacing": import("oxlint-plugin-utilities").CreateRule; "require-safety-comment-for-type-assertion": import("oxlint-plugin-utilities").CreateOnceRule; "require-switch-case-braces": import("oxlint-plugin-utilities").CreateRule; "require-throw-error-capture": import("oxlint-plugin-utilities").CreateRule; "require-tsx-for-hooks": import("oxlint-plugin-utilities").CreateRule; "require-unicode-regex": import("oxlint-plugin-utilities").CreateOnceRule; "rerender-memo-with-default-value": import("oxlint-plugin-utilities").CreateRule; "starts-with-verb": import("oxlint-plugin-utilities").CreateOnceRule; "strict-component-boundaries": import("oxlint-plugin-utilities").CreateRule; "use-exhaustive-dependencies": import("oxlint-plugin-utilities").CreateRule; "use-hook-at-top-level": import("oxlint-plugin-utilities").CreateRule; }>; //#endregion export { smallRules as default };