using FileTime.Core.Behaviors; using FileTime.Core.Enums; using FileTime.Core.Models; using FileTime.Core.Timeline; namespace FileTime.Core.ContentAccess; public interface IContentProvider : IContainer, IOnContainerEnter { bool SupportsContentStreams { get; } Task GetItemByFullNameAsync( FullName fullName, PointInTime pointInTime, bool forceResolve = false, AbsolutePathType forceResolvePathType = AbsolutePathType.Unknown, ItemInitializationSettings itemInitializationSettings = default); Task GetItemByNativePathAsync(NativePath nativePath, PointInTime pointInTime, bool forceResolve = false, AbsolutePathType forceResolvePathType = AbsolutePathType.Unknown, ItemInitializationSettings itemInitializationSettings = default); NativePath GetNativePath(FullName fullName); Task GetContentAsync(IElement element, int? maxLength = null, CancellationToken cancellationToken = default); bool CanHandlePath(NativePath path); bool CanHandlePath(FullName path); }