import { FlatESLintConfigItem } from '@eslint-sukka/shared'; declare function next(): FlatESLintConfigItem[]; interface EslintReactAdditionalComponents { name: string; as: string; attributes: Array<{ name: string; as: string; defaultValue?: string; }>; } interface OptionsReact { files?: string | string[] | ((builtinFiles: string[]) => string[]); /** * @default '(useIsomorphicLayoutEffect|useSukkaManyOtherCustomEffectHookExample)' */ additionalHooks?: string; additionalHooksWithType?: Record; additionalComponents?: EslintReactAdditionalComponents[]; /** * @default 'error' */ reactCompiler?: boolean; nextjs?: boolean | string | string[]; remix?: boolean | string | string[]; reactRefresh?: { allowConstantExport?: boolean; }; } declare function react({ files, additionalHooks, nextjs, remix, reactRefresh, additionalHooksWithType, additionalComponents }?: OptionsReact): FlatESLintConfigItem[]; interface OptionsStyleX { opt?: StyleXESLintOptions; } interface StyleXESLintOptions { validImports?: string[]; propLimits?: PropLimits; allowOuterPseudoAndMedia?: boolean; banPropsForLegacy?: boolean; } interface PropLimits { [propertyName: string]: { limit: null | 'string' | 'number' | string | number | Array; reason: string; }; } declare function stylex({ opt }?: OptionsStyleX): Promise; export { next, react, stylex }; export type { OptionsReact, OptionsStyleX };