export default Tool;
declare class Tool {
    name: any;
    mode: ObservedValue;
    settings: {};
    modifiers: {
        shift: boolean;
        alternative: boolean;
    };
    /**
     *
     * @type {Engine|null}
     */
    engine: Engine | null;
    /**
     *
     * @type {Editor|null}
     */
    editor: Editor | null;
    /**
     *
     * @type {ObservedString}
     */
    icon: ObservedString;
    /**
     *
     * @param {Editor} editor
     */
    updateIcon(editor: Editor): void;
    /**
     *
     * @returns {ToolState|number}
     */
    getState(): ToolState | number;
    isRunning(): boolean;
    /**
     * Activate the tool and prepare it for usage
     */
    initialize(): void;
    /**
     * Deactivate the tool and remove and influence it may have
     */
    finalize(): void;
    /**
     * Update loop
     */
    update(): void;
    /**
     * Start usage of the tool.
     * @example Start painting with a brush
     */
    start(): void;
    /**
     * Finish usage of the tool
     * @example Finish brush stroke
     */
    stop(): void;
    handleKeyboardEvent(e: any): void;
    #private;
}
import ObservedValue from '../../../src/core/model/ObservedValue.js';
import ObservedString from "../../../src/core/model/ObservedString.js";
import { ToolState } from "./ToolState.js";
//# sourceMappingURL=Tool.d.ts.map