def METHOD_NAME(self, globs: Tuple[str, ...], poll: bool) -> Optional[Snapshot]:
    """Returns a Snapshot of the input globs.
    If poll=True, will wait for up to INVALIDATION_POLL_INTERVAL for the globs to have changed,
    and will return None if they have not changed.
    """
    timeout = self.INVALIDATION_POLL_INTERVAL if poll else None
    try:
        snapshot = self._scheduler_session.product_request(
            Snapshot,
            subjects=[PathGlobs(globs)],
            poll=poll,
            timeout=timeout,
        )[0]
        return cast(Snapshot, snapshot)
    except ExecutionTimeoutError:
        if poll:
            return None
        raise