import { AppObject, AppObjectPM, AppObjectRepo } from "@vived/core";
export interface ToolVM {
    label: string;
    enabled: boolean;
    selected: boolean;
    show: boolean;
    shortcutLabel: string;
    tooltipLabel: string;
}
export declare const defaultToolVM: {
    label: string;
    enabled: boolean;
    selected: boolean;
    show: boolean;
    shortcutLabel: string;
    tooltipLabel: string;
};
export declare abstract class ToolPM extends AppObjectPM<ToolVM> {
    static readonly type = "ToolPM";
    static get(id: string, appObjects: AppObjectRepo): ToolPM | undefined;
}
export declare function makeToolPM(appObject: AppObject): ToolPMImp;
declare class ToolPMImp extends ToolPM {
    private get tool();
    vmsAreEqual(a: ToolVM, b: ToolVM): boolean;
    onToolChange: () => void;
    constructor(appObject: AppObject);
}
export {};
//# sourceMappingURL=ToolPM.d.ts.map