import { HashMap } from '../../helper/hashMap';
export interface Operation {
    operation: operation;
    length?: lengthTypes;
    op1?: operandTypes;
    op2?: operandTypes;
    constant?: string;
    type?: 'rb' | 'rd';
    has16Bit?: boolean;
    isRegisterIncluded?: boolean;
    isSignExtended?: boolean;
}
declare type operation = 'test' | 'xor' | 'iret' | 'rol' | 'ror' | 'sal' | 'sar' | 'sbb' | 'shr' | 'sub' | 'jmp' | 'loop' | 'imul' | 'neg' | 'or' | 'rcl' | 'rcr' | 'ret' | 'iretd' | 'dec' | 'idiv' | 'div' | 'mul' | 'inc' | 'int' | 'cmp' | 'add' | 'mov' | 'xchg' | 'not' | 'adc' | 'and' | 'into' | 'ja' | 'jae' | 'jb' | 'jbe' | 'jc' | 'jcx' | 'jnb' | 'loope' | 'loopne' | 'je' | 'jg' | 'jge' | 'jl' | 'jle' | 'jna' | 'jnc' | 'jne' | 'jng' | 'jnl' | 'jno' | 'jnp' | 'jns' | 'jnz' | 'jo' | 'jp' | 'jpe' | 'jpo' | 'js' | 'jz';
export declare type modRmTypes = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | 'r';
declare type lengthTypes = 'b' | 'w' | 'd';
export declare const ALL_TABLES: HashMap<OpCode, Operation>;
export declare const MOD_RM_SET: Set<string>;
export interface OpCode {
    opcode: string;
    modRm?: modRmTypes;
}
export declare type operandTypes = 'r32' | 'm32' | 'r16' | 'm16' | 'r8' | 'm8' | 'mr32' | 'mr16' | 'mr8' | 'imm8' | 'imm16' | 'imm32' | 'eax' | 'ebx' | 'ecx' | 'edx' | 'esp' | 'ebp' | 'esi' | 'edi' | 'ax' | 'bx' | 'cx' | 'dx' | 'sp' | 'bp' | 'si' | 'di' | 'al' | 'bl' | 'cl' | 'dl' | 'ah' | 'bh' | 'ch' | 'dh';
export {};
