/** * @fileoverview Go Language Extractor * @module @nahisaho/musubix-security/extractors/go-extractor * @trace TSK-GO-001, TSK-GO-002, TSK-GO-003, TSK-GO-004, TSK-GO-005 * @trace REQ-SEC-GO-001, REQ-SEC-GO-002, REQ-SEC-GO-003, REQ-SEC-GO-004 * @trace REQ-SEC-GO-005, REQ-SEC-GO-006, REQ-SEC-GO-007, REQ-SEC-GO-008 */ import { BaseExtractor, type ASTNode, type ASTEdge, type DataFlowGraph, type ControlFlowGraph, type SymbolTable, type FrameworkModel, type SupportedLanguage } from './base-extractor.js'; /** * Go Language Extractor * @trace TSK-GO-001, REQ-SEC-GO-001 */ export declare class GoExtractor extends BaseExtractor { readonly language: SupportedLanguage; readonly extensions: string[]; private parser; private tree; private nodeIdCounter; private blockIdCounter; /** * Get framework models for Go * @trace REQ-SEC-GO-004 */ getFrameworkModels(): FrameworkModel[]; /** * Initialize tree-sitter parser * @trace REQ-SEC-GO-002 */ private initParser; /** * Build AST from source code * @trace TSK-GO-002, REQ-SEC-GO-002 */ protected buildAST(source: string, filePath: string): Promise<{ ast: ASTNode; astNodes: Map; astEdges: ASTEdge[]; }>; /** * Convert tree-sitter node to AST format */ private convertTreeSitterNode; /** * Extract properties from node * @trace REQ-SEC-GO-003 */ private extractNodeProperties; /** * Create fallback AST when tree-sitter is unavailable */ private createFallbackAST; /** * Build Data Flow Graph * @trace TSK-GO-003, REQ-SEC-GO-005 */ protected buildDFG(astNodes: Map, _astEdges: ASTEdge[], frameworkModels: FrameworkModel[]): Promise; /** * Build Control Flow Graph * @trace TSK-GO-004, REQ-SEC-GO-006 */ protected buildCFG(astNodes: Map, _astEdges: ASTEdge[]): Promise; /** * Extract symbols from AST * @trace TSK-GO-005, REQ-SEC-GO-007 */ protected extractSymbols(astNodes: Map): Promise; /** * Check if identifier is exported (public) * Go exports identifiers starting with uppercase */ isExported(name: string): boolean; } /** * Create Go extractor instance * @trace REQ-SEC-GO-001 */ export declare function createGoExtractor(): GoExtractor; //# sourceMappingURL=go-extractor.d.ts.map