import { Category } from '../enums.js';
import { Song, Video, Playlist, ArtistExtended, AlbumExtended, Unsorted, ContinuableResultBlueprint } from '../resources/generalTypes/index.js';
import type { GeneralFull, MusicResponsiveListItemRenderer } from '../resources/etc/rawResultTypes/general/generalFull.js';
/**
 * Parser to deal with the output generated by the Moosick#search
 *
 * @remarks
 * Do not use this class directly, unless for tests purposes
 * @internal
 */
export declare class GeneralParser {
    /**
     * Parses the search result based on the return results or supplied parameters
     * @param context - The return results from axios
     */
    static parseSearchResult(context: GeneralFull): ContinuableResultBlueprint<Unsorted>;
    static parseSearchResult<T extends Category.VIDEO>(context: GeneralFull, searchType?: T): ContinuableResultBlueprint<Video>;
    static parseSearchResult<T extends Category.SONG>(context: GeneralFull, searchType?: T): ContinuableResultBlueprint<Song>;
    static parseSearchResult<T extends Category.PLAYLIST>(context: GeneralFull, searchType?: T): ContinuableResultBlueprint<Playlist>;
    static parseSearchResult<T extends Category.ARTIST>(context: GeneralFull, searchType?: T): ContinuableResultBlueprint<ArtistExtended>;
    static parseSearchResult<T extends Category.ALBUM | Category.EP | Category.SINGLE>(context: GeneralFull, searchType?: T): ContinuableResultBlueprint<AlbumExtended>;
    static parseSearchResult<T extends Category>(context: GeneralFull, searchType?: T): ContinuableResultBlueprint<Video | Song | Playlist | ArtistExtended | AlbumExtended | Unsorted>;
    /**
     * Only works for video and song
     */
    static musicResponsiveListItemRendererParser(musicResponsiveListItemRenderer: MusicResponsiveListItemRenderer): {
        name: string;
        url: string;
        videoId: string;
    };
}
//# sourceMappingURL=generalParser.d.ts.map