/**
 * @module Instruction
 */
/**
 * Instruction class
 * @class
 */
export default class Instruction {
    /**
     * Unimplemented
     * FIXME
     */
    static from(): void;
    /**
     * @callback InstructionCallback
     * @param {CanvasRenderingContext2D} ctx
     * @param {Position} target
     * @param {Position} previousPosition
     */
    /**
     * Instruction constructor
     * @param {InstructionCallback} action - Function to execute
     * @param {PositionDefinition} target - Position to go to
     */
    constructor(action: InstructionCallback, target: any);
    action: InstructionCallback;
    target: Position;
    /**
     * Follow the instruction
     * @param {Path2D} path - Current drawing path
     * @param {Position} previousPosition - Position from where the instruction start
     * @return {Position} The position reached
     */
    execute(path: Path2D, previousPosition: Position): Position;
    /**
     * Unimplemented
     * FIXME: How to serialize a wrapper of a function ?
     */
    toJSON(): void;
}
export type InstructionCallback = (ctx: CanvasRenderingContext2D, target: Position, previousPosition: Position) => any;
import Position from "@pencil.js/position";
