#  Copyright (c) PARRRATE T&V 2021. All rights reserved.

from bu4.evaluation.av.envtype import envtype
from bu4.evaluation.constructs.attachable import Attachable
from bu4.evaluation.constructs.evaluable import Evaluable
from bu4.indexing.constructs.indexed import Indexed
from bu4.transform.states.transformstate import TransformState

__all__ = ('Linked',)


class Linked(Attachable[envtype]):
    future: set[bytes]
    multifuture: set[bytes]

    def attach(self, env: envtype) -> Evaluable:
        raise NotImplementedError

    def index(self, promise: list[bytes]) -> TransformState[Indexed]:
        raise NotImplementedError