import { NamedStyles, Style } from "../style"; import { SourceFile } from "../tree"; import { JS } from "./tree"; import { SpacesStyle, StyleKind, TabsAndIndentsStyle, WrappingAndBracesStyle } from "./style"; import { UUID } from "../uuid"; /** * Auto-detected styles for JavaScript/TypeScript code. * Focuses on key formatting variations where projects differ: * - Tabs vs spaces * - Indent size (2, 4, etc.) * - Spaces within ES6 import/export braces */ export interface Autodetect extends NamedStyles { readonly kind: typeof StyleKind.Autodetect; readonly name: "org.openrewrite.javascript.Autodetect"; readonly displayName: "Auto-detected"; readonly description: "Automatically detect styles from a repository's existing code."; } export declare function autodetect(id: UUID, styles: Style[]): Autodetect; export declare namespace Autodetect { function detector(): Detector; } /** * Collects formatting statistics from source files and builds auto-detected styles. */ export declare class Detector { private readonly tabsAndIndentsStats; private readonly spacesStats; private readonly wrappingAndBracesStats; /** * Sample a source file to collect formatting statistics. */ sample(sourceFile: SourceFile): Promise; /** * Sample a JavaScript/TypeScript compilation unit. */ sampleJavaScript(cu: JS.CompilationUnit): Promise; /** * Build the auto-detected styles from collected statistics. */ build(): Autodetect; getTabsAndIndentsStyle(): TabsAndIndentsStyle; getSpacesStyle(): SpacesStyle; getWrappingAndBracesStyle(): WrappingAndBracesStyle; } //# sourceMappingURL=autodetect.d.ts.map