import { AppObject, AppObjectEntity, AppObjectRepo } from "@vived/core";
export declare enum ToolState {
    HIDDEN = "HIDDEN",
    DISABLED = "DISABLED",
    ENABLED = "ENABLED",
    ACTIVE = "ACTIVE"
}
export interface HotKey {
    keyCode: string;
    control?: boolean;
    shift?: boolean;
    meta?: boolean;
    alt?: boolean;
}
export declare abstract class ToolEntity extends AppObjectEntity {
    static readonly type = "TOOL";
    abstract get toolType(): string | undefined;
    abstract get label(): string;
    abstract set label(toolLabel: string);
    abstract get shortcutLabel(): string;
    abstract set shortcutLabel(shorcut: string);
    abstract get state(): ToolState;
    abstract set state(val: ToolState);
    abstract get hotkeys(): HotKey[];
    abstract set hotkeys(val: HotKey[]);
    abstract get isAction(): boolean;
    abstract triggerActions(): void;
    abstract registerAction(action: () => void): void;
    abstract isMyHotkey(hotkey: HotKey): boolean;
    static get(id: string, appObjects: AppObjectRepo): ToolEntity | undefined;
}
export declare function makeToolEntity(appObject: AppObject): ToolEntity;
//# sourceMappingURL=ToolEntity.d.ts.map