/** * Hook extractor. * * The `use*` prefix is React's own semantic contract for hooks (enforced by the * rules-of-hooks), so it is a legitimate semantic signal — not a folder * convention. We additionally require the symbol to be a function and to not * render JSX (that would make it a component). */ import { type SourceFile } from 'ts-morph'; import type { Extractor, ExtractionContext, HookAsset } from '../core/types'; export declare class HookExtractor implements Extractor { name: string; produces: 'hook'; extract(file: SourceFile, ctx: ExtractionContext): HookAsset[]; private build; }