import { Reassemble } from './Reassemble';
export declare class Decomp {
    private pattern;
    private mem;
    private reassembles;
    /**
     * The current reassembly point
     *
     * @private
     * @memberof Decomp
     */
    private currReasmb;
    /**
     * Initialize the decomp rule.
     *
     * @param {string} pattern The decomp pattern
     * @param {boolean} mem The mem flag
     * @param {Reassemble[]} reassembles The reassembly list
     * @memberof Decomp
     */
    constructor(pattern: string, mem: boolean, reassembles: Reassemble[]);
    /**
     * pattern
     */
    getPattern(): string;
    /**
     * Get the mem flag.
     */
    isMemoryKey(): boolean;
    /**
     * getReasemb
     */
    getReasemb(): Reassemble[];
    getAnnotates(): Reassemble[];
    /**
     * Step to the next reassembly rule.
     * If mem is true, pick a random rule.
     *
     * This function merged `Decomp.stepRule()` and `Decomp.nextRule()`
     * from original code.
     */
    nextRule(): Reassemble;
}
