'Form 01', 'persistenceIdentifier' => 'path1'], [ .... ]] */ public function listForms(array $formSettings, SearchCriteria $searchCriteria): array; /** * Check if any form definition is available */ public function hasForms(array $formSettings): bool; /** * This takes a form identifier and returns a unique persistence identifier for it. */ public function getUniquePersistenceIdentifier(string $storage, string $formIdentifier, ?string $savePath): string; public function getUniqueIdentifier(string $identifier): string; /** * Check if a storage location (PID for database, folder path for files) is allowed * * @param string $storageLocation The storage location (e.g., "123" for PID, "1:/forms/" for file path) * @return bool True if the storageLocation is allowed */ public function isAllowedStorageLocation(string $storageLocation): bool; /** * Check if a persistence identifier (UID for database, full file path for files) is allowed * * @param string $persistenceIdentifier The persistence identifier (e.g., "456" for UID, "1:/forms/contact.form.yaml" for file) * @return bool True if the persistence identifier is allowed */ public function isAllowedPersistenceIdentifier(string $persistenceIdentifier): bool; public function hasValidFileExtension(string $fileName): bool; public function getAccessibleStorageAdapters(): array; }