import { AppObject, AppObjectEntityRepo, AppObjectRepo } from "@vived/core";
import { Transform3D } from "../../Transform3D";
import { LandmarkEntity } from "./LandmarkEntity";
export type LandmarkFactory = (id: string) => LandmarkEntity;
export declare abstract class LandmarkRepo extends AppObjectEntityRepo<LandmarkEntity> {
    static readonly type = "LANDMARK_REPO";
    abstract get transform(): Transform3D;
    abstract landmarkFactory(id: string): LandmarkEntity;
    abstract createLandmark(id?: string): LandmarkEntity;
    abstract deleteLandmark(id: string): void;
    abstract applySurrogateTransform(transform: Transform3D): void;
    static get(appObj: AppObject): LandmarkRepo | undefined;
    static getByID(id: string, appObjects: AppObjectRepo): LandmarkRepo | undefined;
    static addIfMissing(appObject: AppObject): LandmarkRepo;
}
export declare function makeLandmarkRepoEntity(appObject: AppObject): LandmarkRepo;
//# sourceMappingURL=LandmarkRepo.d.ts.map