import type { _NSError } from "../Foundation/NSError.js";
import type { _NSIndexPath } from "../Foundation/NSIndexPath.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _MPContentItem } from "./MPContentItem.js";
export interface _MPPlayableContentDataSource {
    /**
     * Tells the data source to begin loading content items that are children of the item specified by indexPath. This is provided so that applications can begin asynchronous batched loading of content before MediaPlayer begins asking for content items to display. Client applications should always call the completion handler after loading has finished, if this method is implemented.
     */
    beginLoadingChildItemsAtIndexPath$completionHandler$?(indexPath: _NSIndexPath, completionHandler: ((arg0: _NSError) => void) | null): void;
    /**
     * Tells MediaPlayer whether the content provided by the data source supports playback progress as a property of its metadata. If this method is not implemented, MediaPlayer will assume that progress is not supported for any content items.
     */
    childItemsDisplayPlaybackProgressAtIndexPath$?(indexPath: _NSIndexPath): boolean;
    /**
     * Provides a content item for the provided identifier. Provide nil if there is no content item corresponding to the identifier. Provide an error if there is an error that will not allow content items to be retrieved. Client applications should always call the completion handler after loading has finished, if this method is implemented.
     */
    contentItemForIdentifier$completionHandler$?(identifier: _NSString, completionHandler: ((arg0: _MPContentItem, arg1: _NSError) => void) | null): void;
    /**
     * Returns the number of child nodes at the specified index path. In a virtual filesystem, this would be the number of files in a specific folder. An empty index path represents the root node.
     */
    numberOfChildItemsAtIndexPath$?(indexPath: _NSIndexPath): number;
    /**
     * Returns the content item at the specified index path. If the content item is mutated after returning, its updated contents will be sent to MediaPlayer.
     */
    contentItemAtIndexPath$?(indexPath: _NSIndexPath): _MPContentItem | null;
}
