from .metadata import Metadata as Metadata
from _typeshed import Incomplete
from collections.abc import Generator

class Project(Metadata):
    def __init__(self, name, parent) -> None: ...
    @property
    def geoEntities(self): ...
    @property
    def images(self): ...
    @property
    def lights(self): ...
    @property
    def projectors(self): ...
    @property
    def cameras(self): ...
    def addGeoEntity(self, geoEntity) -> None: ...
    def addImage(self, image) -> None: ...
    def addLight(self, light) -> None: ...
    def addProjector(self, projector) -> None: ...
    def addCamera(self, camera) -> None: ...
    def asDict(self, includeDict: Incomplete | None = ...): ...
    def copyGeoEntities(self, sourceGeoEntities): ...
    @classmethod
    def fromMSF(self, filePath): ...
    @classmethod
    def fromDict(cls, dataDict, sourceFilePath, skipChildren: bool = ...): ...
    @classmethod
    def fromSession(cls): ...
    def instantiateChildren(self) -> None: ...
    def make(self, finishedCallback=...) -> None: ...
    sourceFilePath: Incomplete
    def merge(self, sourceProject, geoEntities: Incomplete | None = ...) -> None: ...
    def walk(self, depth: int = ...) -> Generator[Incomplete, None, None]: ...
