import { AppObject } from "@vived/core";
import { AppObjectEntity } from "@vived/core";
import { AppObjectRepo } from "@vived/core";
import { Selectable } from "./Selectable";
export declare abstract class Selection extends AppObjectEntity {
    static readonly type = "SELECTION_ENTITY";
    abstract get pressedObjectId(): string | null;
    abstract set pressedObjectId(val: string | null);
    abstract get selectedObjectId(): string | null;
    abstract set selectedObjectId(val: string | null);
    abstract get hoveredObjectId(): string | null;
    abstract set hoveredObjectId(val: string | null);
    abstract removeSelectable(selectable: Selectable): void;
    abstract addSelectable(selectable: Selectable): void;
    abstract hasSelectable(id: string): boolean;
    abstract makeAppObjectSelectable(appObject: AppObject): Selectable;
    static get(appObjects: AppObjectRepo): Selection | undefined;
}
export declare function makeSelection(appObj: AppObject): Selection;
//# sourceMappingURL=Selection.d.ts.map