import type { Rule } from "../types.js"; interface ComponentPropFinding { componentName: string; propName: string; kind: "any" | "unknown" | "string-variant"; line: number; column: number; } /** * Walk a parsed .tsx/.jsx source for exported PascalCase component declarations * and collect their typed prop violations. * * Resolves prop type references to same-file interface / type-alias declarations. * Cross-file references are skipped (v0.1 limitation, mirrors loaders/components.ts). */ declare function scanComponentContracts(source: string): { findings: ComponentPropFinding[]; componentCount: number; }; interface PackageJsonShape { name?: unknown; private?: unknown; types?: unknown; typings?: unknown; main?: unknown; module?: unknown; exports?: unknown; } type PackageCheckOutcome = { kind: "missing-types"; } | { kind: "types-points-to-missing-file"; typesPath: string; } | { kind: "ok"; typesPath: string; }; declare function checkPackageJsonTypes(pkg: PackageJsonShape, packageDir: string): PackageCheckOutcome; declare function looksLikePublishablePackage(pkg: PackageJsonShape): boolean; export declare const rule: Rule; export declare const _internal: { scanComponentContracts: typeof scanComponentContracts; checkPackageJsonTypes: typeof checkPackageJsonTypes; looksLikePublishablePackage: typeof looksLikePublishablePackage; VARIANT_PROP_RE: RegExp; FRAMEWORK_ALLOWED_PROPS: Set; }; export {};