1: <?php
2:
3: namespace LaravelUi5\Core\Ui5\Contracts;
4:
5: use LaravelUi5\Core\Introspection\Library\Ui5LibrarySource;
6: use LaravelUi5\Core\Ui5\Capabilities\HasAssetsInterface;
7: use LaravelUi5\Core\Ui5\Capabilities\VendorTaggedInterface;
8:
9: /**
10: * Marker interface for UI5 libraries.
11: *
12: * Libraries contain reusable controls, message bundles, and preload scripts.
13: * They do not expose routing or visible UI components. Registered libraries
14: * can be resolved via the Ui5Registry and served statically via Laravel routes.
15: */
16: interface Ui5LibraryInterface extends Ui5ArtifactInterface, HasAssetsInterface, VendorTaggedInterface
17: {
18: /**
19: * Returns the UI5 source associated with this library.
20: *
21: * The source represents the original UI5 library project from which this
22: * library was generated and provides access to introspection data such as
23: * the library descriptor, dependencies, framework metadata and build
24: * information.
25: *
26: * @return Ui5LibrarySource The associated UI5 library source.
27: */
28: public function getSource(): Ui5LibrarySource;
29: }
30: