1: <?php declare(strict_types=1);
2:
3: namespace Salient\Contract\Core\Provider;
4:
5: use LogicException;
6:
7: /**
8: * @api
9: *
10: * @template TProvider of ProviderInterface
11: *
12: * @extends HasProvider<TProvider>
13: */
14: interface ProviderAwareInterface extends HasProvider
15: {
16: /**
17: * Set the object's provider
18: *
19: * @param TProvider $provider
20: * @return $this
21: * @throws LogicException if the object already has a provider.
22: */
23: public function setProvider(ProviderInterface $provider);
24: }
25: