import Context from "../Context";
import TrackCache from "../music/TrackCache";
import CollectionCache from "./CollectionCache";
import TrackList from "./TrackList.js";
export default class ExternalCollection extends TrackList {
    private context;
    private trackCache;
    readonly type: string;
    private size;
    readonly image?: string;
    private loadedPages;
    private loading;
    private gotFullTracklist;
    private updateCallbacks;
    constructor(context: Context, trackCache: TrackCache, collectionCache: CollectionCache, collectionID: string, collectionName: string, service: string, type: string, size: number, image?: string);
    static convertJsonToExternalCollection(context: Context, trackCache: TrackCache, collectionCache: CollectionCache, json: any): ExternalCollection;
    loadNextPage(): Promise<boolean>;
    getThumbnailUrl(): string;
    isLoading(): boolean;
    hasFullTracklist(): boolean;
    getTrackListLength(): number;
    private pushToCallbacks;
    registerUpdateCallback(callback: (collection: ExternalCollection) => void): void;
    unregisterUpdateCallback(callback: (collection: ExternalCollection) => void): void;
}
