import { LogicConditionClause, LogicCommand, LogicInstruction } from '../../Types/Logic'; export declare type LogicLabel = { address: number; label: string; references: LogicInstruction[]; }; export declare type LogicASTNodeMetadata = { instructionAddress?: number; }; export declare type LogicCommandNode = LogicCommand & { id: string; label?: LogicLabel; next?: LogicASTNode; metadata?: LogicASTNodeMetadata; }; export declare type LogicIfNode = { type: 'if'; id: string; clauses: LogicConditionClause[]; then?: LogicASTNode; else?: LogicASTNode; label?: LogicLabel; metadata?: LogicASTNodeMetadata; }; export declare type LogicGotoNode = { type: 'goto'; id: string; jumpTarget: LogicASTNode; label?: LogicLabel; metadata?: LogicASTNodeMetadata; }; export declare type LogicASTNode = LogicIfNode | LogicGotoNode | LogicCommandNode; export declare function decompileInstructions(instructions: LogicInstruction[]): LogicASTNode;