import { PrimitiveInt16U, PrimitiveInt32U, PrimitiveStringP8N } from '@sage-js/core'; import { OSI, IClassDefinitionTableEntry, ISubroutineTableEntry, ClassDefinitionMethod, FunctionDefinition, ClassDefinition, Subroutine } from '@sage-js/res-osi'; import { ASTNodeStatementBlock } from './ast/node/statement/block'; import { ASTNodeStatementInstruction } from './ast/node/statement/instruction'; export interface IClassDefinitionMethodInfo { /** * Class info. */ classInfo: IClassDefinitionTableEntry; /** * Class method. */ method: ClassDefinitionMethod; } export interface IDisassemblyStructuredFileMapper { /** * Metadata mapper. */ metadata(osi: OSI): string; /** * Strings mapper. */ strings(osi: OSI): string; /** * Globals mapper. */ globals(osi: OSI): string; /** * Symbols mapper. */ symbols(osi: OSI): string; /** * Sources mapper. */ sources(osi: OSI): string; /** * Function mapper. */ function(osi: OSI, def: FunctionDefinition, index: number): string; /** * Class mapper. */ class(osi: OSI, def: IClassDefinitionTableEntry, index: number): string; /** * Subroutine mapper. */ subroutine(osi: OSI, def: ISubroutineTableEntry): string; } export declare type MapSubroutineOffsetToId = Map; export declare type MapFunctionOffsetToDefinitions = Map; export declare type MapClassMethodOffsetToDefinitions = Map; export declare type MapSourceRange = Map; export interface ITokenMeta { /** * Type. */ type: string; /** * Column. */ column: number; /** * Token. */ token: string; } export declare type MapIdentifierToASTNodeStatementInstruction = Map; export declare type MapIdentifierToASTNodeStatementBlock = Map; export declare type MapIdToSubroutineOffset = Map; export declare type SymbolToIndex = (s: PrimitiveStringP8N) => PrimitiveInt16U; export declare type MapClassStructuresToNames = Map; export declare type MapSubroutineReferenceCount = Map;