import { SereneRequest, SereneRequestParseOptions, SereneRequestPrepareOptions } from "serene-front";
import { MusicDeveloperToken } from "./token";
import { MusicSearchResults } from "./models";
export type MusicCatalogType = 'activities' | 'albums' | 'apple-curators' | 'artists' | 'curators' | 'music-videos' | 'playlists' | 'record-labels' | 'songs' | 'stations';
export type MusicCatalogSearchModification = 'topResults';
export interface SearchMusicCatalogOptions {
    readonly storefront: string;
    readonly types: MusicCatalogType[];
    readonly term: string;
    readonly language?: string;
    readonly limit?: number;
    readonly offset?: number;
    readonly with?: MusicCatalogSearchModification[];
}
export declare class SearchMusicCatalog implements SereneRequest<MusicDeveloperToken, MusicSearchResults> {
    private readonly options;
    constructor(options: SearchMusicCatalogOptions);
    prepare({}: SereneRequestPrepareOptions<MusicDeveloperToken>): Request;
    parse({ fetchResponse }: SereneRequestParseOptions<MusicDeveloperToken>): Promise<any>;
}
