1: <?php declare(strict_types=1);
2:
3: namespace Salient\Contract\Sync;
4:
5: /**
6: * Resolves sync entities to provider interfaces, and vice-versa
7: *
8: * @api
9: */
10: interface SyncClassResolverInterface
11: {
12: /**
13: * Get a sync entity's provider interface
14: *
15: * @param class-string<SyncEntityInterface> $entity
16: * @return class-string<SyncProviderInterface>
17: */
18: public function entityToProvider(string $entity): string;
19:
20: /**
21: * Get sync entities serviced by a provider interface
22: *
23: * @param class-string<SyncProviderInterface> $provider
24: * @return array<class-string<SyncEntityInterface>>
25: */
26: public function providerToEntity(string $provider): array;
27: }
28: