import { AppObject, AppObjectEntityRepo, AppObjectRepo } from "@vived/core";
import { Transform3D } from "../../Transform3D/Entities/Transform3D";
import { CalloutEntity } from "./CalloutEntity";
export type CalloutFactory = (id: string) => CalloutEntity;
export declare abstract class CalloutRepo extends AppObjectEntityRepo<CalloutEntity> {
    static readonly type = "CALLOUT_REPO";
    abstract transform: Transform3D;
    abstract calloutFactory(id: string): CalloutEntity;
    abstract makeCallout(id?: string): CalloutEntity;
    abstract deleteCallout(id: string): void;
    abstract applySurrogateTransform(transform: Transform3D): void;
    static get(appObj: AppObject): CalloutRepo | undefined;
    static getById(id: string, appObjects: AppObjectRepo): CalloutRepo | undefined;
    static addIfMissing(appObject: AppObject): CalloutRepo;
}
export declare function makeCalloutRepoEntity(appObject: AppObject): CalloutRepo;
//# sourceMappingURL=CalloutRepo.d.ts.map