import type { Rule } from 'eslint';
import type { ExportDefaultDeclaration, ExportNamedDeclaration } from 'estree';
/**
 * ESLint rule requiring demo files to have focus comments around the preview section.
 */
export declare const lintJavascriptDemoFocus: {
  meta: {
    readonly type: 'suggestion';
    readonly docs: {
      readonly description: 'Require demo files to have @focus-start / @focus-end comments around the preview section.';
    };
    readonly fixable: 'code';
    readonly messages: {
      readonly missingDemoFocusJsx: 'Demo file is missing {/* @focus-start */} and {/* @focus-end */} comments around the preview section. Run with --fix to add them automatically.';
      readonly missingDemoFocusJsxSingle: 'Demo file is missing {/* @focus */} comment on the preview line. Run with --fix to add it automatically.';
      readonly missingDemoFocusJs: 'Demo file is missing // @focus-start and // @focus-end comments around the preview section. Run with --fix to add them automatically.';
      readonly missingDemoFocusJsSingle: 'Demo file is missing // @focus comment on the preview line. Run with --fix to add it automatically.';
      readonly missingDemoFocusBody: 'Demo file is missing // @focus-start @padding 1 and // @focus-end comments around the function body. Run with --fix to add them automatically.';
    };
    readonly schema: [{
      readonly type: 'object';
      readonly properties: {
        readonly wrapReturn: {
          readonly type: 'boolean';
          readonly description: 'When true, bare return statements without parentheses are wrapped in return (...) and the highlight comment is placed inside the parentheses.';
        };
      };
      readonly additionalProperties: false;
    }];
  };
  create(context: Rule.RuleContext): {
    ExportDefaultDeclaration?: undefined;
    ExportNamedDeclaration?: undefined;
    'Program:exit'?: undefined;
  } | {
    ExportDefaultDeclaration(node: ExportDefaultDeclaration & Rule.NodeParentExtension): void;
    ExportNamedDeclaration(node: ExportNamedDeclaration & Rule.NodeParentExtension): void;
    'Program:exit'(): void;
  };
};