/** Type of copper instruction */
export declare enum CopperInstructionType {
    MOVE = 0,
    WAIT = 1,
    SKIP = 2
}
/**
 * Disassemble memory into copper instructions
 */
export declare function disassembleCopper(memory: string): CopperInstruction[];
/**
 * Copper instruction
 */
export declare class CopperInstruction {
    instructionType: CopperInstructionType;
    first: number;
    second: number;
    constructor(instructionType: CopperInstructionType, first: number, second: number);
    static parse(instructionString: string): CopperInstruction;
    getAsmInstruction(): string;
    getInstructionBytes(): string;
    protected getPaddedAsmInstruction(): string;
    protected format(value: number): string;
}
export declare class CopperMove extends CopperInstruction {
    DA: number;
    RD: number;
    /** Understandable label */
    label: string | undefined;
    constructor(first: number, second: number);
    toString(): string;
}
export declare class CopperCondition extends CopperInstruction {
    /** Vertical beam position unmasked */
    VP: number;
    /** Horizontal beam position unmasked */
    HP: number;
    /**  blitter-finished disable */
    BFD: number;
    /** Vertical enable comparison (mask bit) */
    VE: number;
    /** Horizontal enable comparison (mask bit) */
    HE: number;
    /** Vertical beam position */
    vertical: number;
    /** Horizontal beam position */
    horizontal: number;
    constructor(instructionType: CopperInstructionType, first: number, second: number);
}
export declare class CopperWait extends CopperCondition {
    constructor(first: number, second: number);
    toString(): string;
    isEnd(): boolean;
}
export declare class CopperSkip extends CopperCondition {
    constructor(first: number, second: number);
    toString(): string;
}
