@typecad/kicad-symbols
Version:
Intelligent fuzzy search for KiCad symbols with CLI interface
105 lines • 3.41 kB
TypeScript
/**
* Converter for transforming KiCad symbol data into ComponentRecord format
* Maintains compatibility with the existing search engine and data structures
*/
import { ComponentRecord } from '../types/index.js';
import { ExtractedSymbol } from './KiCadSymbolExtractor.js';
/**
* Options for controlling symbol conversion
*/
export interface ConversionOptions {
/** Default manufacturer name for KiCad symbols */
defaultManufacturer: string;
/** Default package type for symbols */
defaultPackage: string;
/** Whether to include file path in extra data */
includeFilePath: boolean;
/** Whether to include processing metadata */
includeMetadata: boolean;
/** Custom category mapping for libraries */
categoryMapping?: Record<string, string>;
/** Whether to generate searchable extra data */
generateSearchableExtra: boolean;
}
/**
* Statistics for symbol conversion operation
*/
export interface ConversionStatistics {
/** Number of symbols converted */
symbolsConverted: number;
/** Number of symbols with descriptions */
symbolsWithDescriptions: number;
/** Number of symbols with keywords */
symbolsWithKeywords: number;
/** Number of unique libraries */
uniqueLibraries: number;
/** Conversion time in milliseconds */
conversionTime: number;
/** Library distribution */
libraryDistribution: Record<string, number>;
}
/**
* Converter for KiCad symbols to ComponentRecord format
*/
export declare class KiCadSymbolConverter {
private options;
private statistics;
constructor(options?: Partial<ConversionOptions>);
/**
* Convert array of extracted symbols to ComponentRecord format
* @param extractedSymbols - Array of extracted symbols
* @returns Array of component records
*/
convertSymbolsToComponentRecords(extractedSymbols: ExtractedSymbol[]): ComponentRecord[];
/**
* Convert a single extracted symbol to ComponentRecord format
* @param symbol - Extracted symbol to convert
* @returns Component record
* @private
*/
private convertSingleSymbol;
/**
* Build description from symbol data with fallback options
* @param symbol - Extracted symbol
* @returns Description string
* @private
*/
private buildDescription;
/**
* Build extra data object with symbol metadata
* @param symbol - Extracted symbol
* @returns Extra data object
* @private
*/
private buildExtraData;
/**
* Generate search terms from symbol data
* @param symbol - Extracted symbol
* @returns Array of search terms
* @private
*/
private generateSearchTerms;
/**
* Get conversion statistics from the last operation
* @returns Conversion statistics
*/
getStatistics(): ConversionStatistics;
/**
* Reset conversion statistics
* @private
*/
private resetStatistics;
/**
* Get a human-readable summary of the conversion results
* @returns Formatted summary string
*/
getConversionSummary(): string;
/**
* Validate that a ComponentRecord is properly formatted
* @param record - Component record to validate
* @returns True if valid
* @static
*/
static validateComponentRecord(record: ComponentRecord): boolean;
}
//# sourceMappingURL=KiCadSymbolConverter.d.ts.map