import { F as FileType, I as ImportInfo, P as Platform } from '../types-CvIlSIOV.js'; /** * Classifies a file based on its path and extension * * @param filePath - The file path to classify * @returns The file type classification * * @example * classifyFile('Button.tsx') // 'shared' * classifyFile('Button.web.tsx') // 'web' * classifyFile('Button.native.tsx') // 'native' * classifyFile('Button.styles.tsx') // 'styles' * classifyFile('types.ts') // 'types' */ declare function classifyFile(filePath: string): FileType; /** * Checks if a file is a component file that should be analyzed * * @param filePath - The file path to check * @returns True if the file is a component file (.tsx or .jsx) */ declare function isComponentFile(filePath: string): boolean; /** * Checks if a file is a shared (cross-platform) component file * These are the files that should NOT contain platform-specific imports * * @param filePath - The file path to check * @returns True if the file is a shared component file */ declare function isSharedFile(filePath: string): boolean; /** * Checks if a file is platform-specific * * @param filePath - The file path to check * @returns True if the file is web or native specific */ declare function isPlatformSpecificFile(filePath: string): boolean; /** * Gets the expected platform for a file * * @param filePath - The file path to check * @returns The expected platform, or null for shared/other files */ declare function getExpectedPlatform(filePath: string): 'web' | 'native' | null; /** * Extracts the base component name from a file path * * @param filePath - The file path * @returns The base component name without platform suffix or extension * * @example * getBaseName('Button.web.tsx') // 'Button' * getBaseName('Button.native.tsx') // 'Button' * getBaseName('Button.tsx') // 'Button' */ declare function getBaseName(filePath: string): string; /** * Options for import parsing */ interface ImportParserOptions { /** Additional sources to treat as React Native */ additionalNativeSources?: string[]; /** Additional sources to treat as React DOM */ additionalDomSources?: string[]; } /** * Determines the platform for a given import source */ declare function getPlatformForSource(source: string, options?: ImportParserOptions): Platform; /** * Parses import statements from TypeScript/JavaScript source code * * @param sourceCode - The source code to parse * @param filePath - Optional file path for better error messages * @param options - Parser options * @returns Array of import information */ declare function parseImports(sourceCode: string, filePath?: string, options?: ImportParserOptions): ImportInfo[]; /** * Filters imports to only those from platform-specific sources */ declare function filterPlatformImports(imports: ImportInfo[], platform?: Platform): ImportInfo[]; /** * Gets all unique import sources from a list of imports */ declare function getUniqueSources(imports: ImportInfo[]): string[]; /** * Groups imports by their source module */ declare function groupImportsBySource(imports: ImportInfo[]): Map; export { type ImportParserOptions, classifyFile, filterPlatformImports, getBaseName, getExpectedPlatform, getPlatformForSource, getUniqueSources, groupImportsBySource, isComponentFile, isPlatformSpecificFile, isSharedFile, parseImports };