import { type TSESTree as es, type TSESLint } from "@typescript-eslint/utils"; /** Shared option for allowing attributes on intrinsic JSX elements. */ type JsxPropRuleOption = Readonly<{ readonly nativeAllowList?: "all" | readonly string[]; }>; /** Rule options tuple used by all render-local JSX prop rules. */ type JsxPropRuleOptions = readonly [JsxPropRuleOption?]; /** Predicate for the render-local expression identity a rule reports. */ type StabilityMatcher = (expression: Readonly, sourceCode: Readonly) => boolean; type VisitorArguments = Readonly<{ readonly context: Readonly>; readonly matcher: StabilityMatcher; readonly options: JsxPropRuleOption; readonly report: (node: Readonly) => void; }>; /** Build the shared conservative JSX-attribute visitor used by perf rules. */ export declare const createJsxPropStabilityVisitor: ({ context, matcher, options, report, }: VisitorArguments) => TSESLint.RuleListener; /** Match an unshadowed built-in constructor call or construction. */ export declare const isBuiltinAllocation: (expression: Readonly, sourceCode: Readonly, constructorName: "Array" | "Function" | "Object") => boolean; /** Match a call to `.bind`, which always creates a new bound function. */ export declare const isBindCall: (expression: Readonly) => boolean; export type { JsxPropRuleOption, JsxPropRuleOptions, StabilityMatcher }; //# sourceMappingURL=jsx-prop-stability.d.ts.map