import type { ResponseType } from 'axios';
import type { Nullable } from '../../utils';
export declare const getUsers: (limit: number | undefined, offset: number | undefined, idsArray: Nullable<number[]>, walletAddress?: Nullable<string> | undefined, handle?: Nullable<string> | undefined, minBlockNumber?: Nullable<number> | undefined, includeIncomplete?: Nullable<boolean> | undefined) => {
    endpoint: string;
    queryParams: {
        limit: number;
        offset: number;
        handle?: string | undefined;
        wallet?: string | undefined;
        min_block_number?: number | undefined;
        id?: string[] | undefined;
        include_incomplete?: boolean | undefined;
    };
};
export declare const getTracks: (limit: number | undefined, offset: number | undefined, idsArray: Nullable<string[]>, targetUserId: Nullable<string>, sort: Nullable<boolean>, minBlockNumber: Nullable<number>, filterDeleted: Nullable<boolean>, withUsers?: boolean) => {
    endpoint: string;
    queryParams: {
        limit: number;
        offset: number;
        id?: string[] | undefined;
        min_block_number?: number | undefined;
        user_id?: string | undefined;
        sort?: boolean | undefined;
        filter_deleted?: boolean | undefined;
        with_users?: boolean | undefined;
    };
};
export declare const getTracksByHandleAndSlug: (handle: string, slug: string) => {
    endpoint: string;
    method: string;
    queryParams: {
        handle: string;
        slug: string;
    };
};
export declare const getTracksIncludingUnlisted: (identifiers: string[], withUsers?: boolean) => {
    endpoint: string;
    method: string;
    data: {
        tracks: string[];
    };
    queryParams: {
        with_users?: boolean | undefined;
    };
};
export declare const getRandomTracks: (genre: string, limit: number, exclusionList: number[], time: string) => {
    endpoint: string;
    queryParams: {
        genre: string;
        limit: number;
        exclusionList: number[];
        time: string;
    };
};
export declare const getStemsForTrack: (trackId: number) => {
    endpoint: string;
    queryParams: {
        with_users: boolean;
    };
};
export declare const getRemixesOfTrack: (trackId: number, limit?: number | null, offset?: number | null) => {
    endpoint: string;
    queryParams: {
        with_users: boolean;
        limit: number | null;
        offset: number | null;
    };
};
export declare const getRemixTrackParents: (trackId: number, limit?: number | null, offset?: number | null) => {
    endpoint: string;
    queryParams: {
        with_users: boolean;
        limit: number | null;
        offset: number | null;
    };
};
export declare const getTrendingTracks: (genre?: string | null, timeFrame?: string | null, idsArray?: number[] | null, limit?: number | null, offset?: number | null, withUsers?: boolean) => {
    endpoint: string;
    method: string;
    queryParams: {
        with_users?: true | undefined;
        genre?: string | undefined;
        offset?: number | undefined;
        limit?: number | undefined;
        id?: number[] | undefined;
    };
};
export declare const getPlaylists: (limit?: number, offset?: number, idsArray?: Nullable<number[]>, targetUserId?: Nullable<number>, withUsers?: boolean) => {
    endpoint: string;
    queryParams: {
        with_users?: boolean | undefined;
        user_id?: number | undefined;
        playlist_id?: number[] | undefined;
        limit: number;
        offset: number;
    };
};
export declare const getFullPlaylist: (encodedPlaylistId: string, encodedUserId: string) => {
    endpoint: string;
    urlParams: string;
    queryParams: {
        user_id: string;
    };
};
export declare const getSocialFeed: (filter: string, limit?: number, offset?: number, withUsers?: boolean, tracksOnly?: boolean) => {
    endpoint: string;
    queryParams: {
        filter: string;
        limit: number;
        offset: number;
        with_users: boolean;
        tracks_only: boolean;
    };
};
export declare const getUserRepostFeed: (userId: number, limit?: number, offset?: number, withUsers?: boolean) => {
    endpoint: string;
    urlParams: string;
    queryParams: {
        limit: number;
        offset: number;
        with_users: boolean;
    };
};
export declare const getFollowIntersectionUsers: (limit: number | undefined, offset: number | undefined, followeeUserId: number, followerUserId: number) => {
    endpoint: string;
    urlParams: string;
    queryParams: {
        limit: number;
        offset: number;
    };
};
export declare const getTrackRepostIntersectionUsers: (limit: number | undefined, offset: number | undefined, repostTrackId: number, followerUserId: number) => {
    endpoint: string;
    urlParams: string;
    queryParams: {
        limit: number;
        offset: number;
    };
};
export declare const getPlaylistRepostIntersectionUsers: (limit: number | undefined, offset: number | undefined, repostPlaylistId: number, followerUserId: number) => {
    endpoint: string;
    urlParams: string;
    queryParams: {
        limit: number;
        offset: number;
    };
};
export declare const getFollowersForUser: (limit: number | undefined, offset: number | undefined, followeeUserId: string) => {
    endpoint: string;
    urlParams: string;
    queryParams: {
        limit: number;
        offset: number;
    };
};
export declare const getFolloweesForUser: (limit: number | undefined, offset: number | undefined, followerUserId: string) => {
    endpoint: string;
    urlParams: string;
    queryParams: {
        limit: number;
        offset: number;
    };
};
export declare const getRepostersForTrack: (limit: number | undefined, offset: number | undefined, repostTrackId: number) => {
    endpoint: string;
    urlParams: string;
    queryParams: {
        limit: number;
        offset: number;
    };
};
export declare const getRepostersForPlaylist: (limit: number | undefined, offset: number | undefined, repostPlaylistId: number) => {
    endpoint: string;
    urlParams: string;
    queryParams: {
        limit: number;
        offset: number;
    };
};
export declare const getSaversForTrack: (limit: number | undefined, offset: number | undefined, saveTrackId: number) => {
    endpoint: string;
    urlParams: string;
    queryParams: {
        limit: number;
        offset: number;
    };
};
export declare const getSaversForPlaylist: (limit: number | undefined, offset: number | undefined, savePlaylistId: number) => {
    endpoint: string;
    urlParams: string;
    queryParams: {
        limit: number;
        offset: number;
    };
};
export declare const searchFull: (text: string, kind: string, limit?: number, offset?: number) => {
    endpoint: string;
    queryParams: {
        query: string;
        kind: string;
        limit: number;
        offset: number;
    };
};
export declare const searchAutocomplete: (text: string, limit?: number, offset?: number) => {
    endpoint: string;
    queryParams: {
        query: string;
        limit: number;
        offset: number;
    };
};
export declare const searchTags: (text: string, userTagCount?: number, kind?: string, limit?: number, offset?: number) => {
    endpoint: string;
    queryParams: {
        query: string;
        user_tag_count: number;
        kind: string;
        limit: number;
        offset: number;
    };
};
export declare const getSavedPlaylists: (limit?: number, offset?: number, withUsers?: boolean) => {
    endpoint: string;
    queryParams: {
        limit: number;
        offset: number;
        with_users: boolean;
    };
};
export declare const getSavedAlbums: (limit?: number, offset?: number, withUsers?: boolean) => {
    endpoint: string;
    queryParams: {
        limit: number;
        offset: number;
        with_users: boolean;
    };
};
export declare const getSavedTracks: (limit?: number, offset?: number, withUsers?: boolean) => {
    endpoint: string;
    queryParams: {
        limit: number;
        offset: number;
        with_users: boolean;
    };
};
/**
 * Return user collections (saved & uploaded) along w/ users for those collections
 */
export declare const getUserAccount: (wallet: string) => {
    endpoint: string;
    queryParams: {
        wallet: string;
    };
};
/**
 * @deprecated Migrate to using getTopFullPlaylists
 */
export declare const getTopPlaylists: (type: 'playlist' | 'album', limit: number, mood: string, filter: string, withUsers?: boolean) => {
    endpoint: string;
    queryParams: {
        limit: number;
        mood: string;
        filter: string;
        with_users: boolean;
    };
};
export declare type GetTopFullPlaylistsParams = {
    type: 'playlist' | 'album';
    limit?: number;
    mood?: string;
    filter?: string;
    withUsers?: boolean;
    encodedUserId?: string;
};
export declare const getTopFullPlaylists: ({ type, limit, mood, filter, encodedUserId, withUsers }: GetTopFullPlaylistsParams) => {
    endpoint: string;
    queryParams: {
        type: "playlist" | "album";
        limit: number | undefined;
        mood: string | undefined;
        filter: string | undefined;
        with_users: boolean;
        user_id: string | undefined;
    };
};
/**
 * @deprecated Migrate to using getBestNewReleases
 */
export declare const getTopFolloweeWindowed: (type: string, window: string, limit: string, withUsers?: boolean) => {
    endpoint: string;
    queryParams: {
        limit: string;
        with_users: boolean;
    };
};
export declare const getBestNewReleases: (window: string, limit: string, encodedUserId: string, withUsers?: boolean) => {
    endpoint: string;
    queryParams: {
        window: string;
        limit: string;
        user_id: string;
        with_users: boolean;
    };
};
export declare const getMostLovedTracks: (encodedUserId: string, limit: string, withUsers?: boolean) => {
    endpoint: string;
    queryParams: {
        limit: string;
        user_id: string;
        with_users: boolean;
    };
};
export declare const getFeelingLuckyTracks: (encodedUserId: string, limit: string, withUsers?: boolean) => {
    endpoint: string;
    queryParams: {
        limit: string;
        user_id: string;
        with_users: boolean;
    };
};
export declare const getTopFolloweeSaves: (type: string, limit: string, withUsers?: boolean) => {
    endpoint: string;
    queryParams: {
        limit: string;
        with_users: boolean;
    };
};
export declare const getLatest: (type: string, limit?: number, offset?: number) => {
    endpoint: string;
    queryParams: {
        limit: number;
        offset: number;
    };
};
export declare const getTopCreatorsByGenres: (genres: string[], limit?: number, offset?: number, withUsers?: boolean) => {
    endpoint: string;
    queryParams: {
        genre: string[];
        limit: number;
        offset: number;
        with_users: boolean;
    };
};
export declare const getURSMContentNodes: (ownerWallet: string | null) => {
    endpoint: string;
    queryParams: {
        owner_wallet: string | null;
    };
};
export declare const getNotifications: (minBlockNumber: string, trackIds: string[], timeout: number) => {
    endpoint: string;
    queryParams: {
        min_block_number: string;
        track_id: string[];
    };
    timeout: number;
};
export declare type GetUserNotificationsParams = {
    encodedUserId: string;
    timestamp: number;
    groupId?: string;
    limit?: number;
    validTypes?: string[];
};
export declare const getUserNotifications: ({ encodedUserId, timestamp, groupId, limit, validTypes }: GetUserNotificationsParams) => {
    endpoint: string;
    queryParams: {
        timestamp: number;
        group_id: string | undefined;
        limit: number | undefined;
        valid_types: string[] | undefined;
    };
};
export declare const getUserSubscribers: (encodedUserId: string, timeout: number) => {
    endpoint: string;
    method: string;
    timeout: number;
};
export declare const bulkGetUserSubscribers: (encodedUserIds: string, timeout: number) => {
    endpoint: string;
    method: string;
    headers: {
        'Content-Type': string;
    };
    data: {
        ids: string;
    };
    timeout: number;
};
export declare const getCIDData: (cid: string, responseType: ResponseType | undefined, timeout: number) => {
    endpoint: string;
    method: string;
    responseType: ResponseType;
    timeout: number;
};
export declare const getSolanaNotifications: (minSlotNumber: number, timeout: number) => {
    endpoint: string;
    queryParams: {
        min_slot_number: number;
    };
    timeout: number;
};
export declare const getTrackListenMilestones: (timeout: number) => {
    endpoint: string;
    timeout: number;
};
export declare const getChallengeAttestation: (challengeId: string, encodedUserId: string, specifier: string, oracleAddress: string) => {
    endpoint: string;
    queryParams: {
        user_id: string;
        specifier: string;
        oracle: string;
    };
};
export declare const getCreateSenderAttestation: (senderEthAddress: string) => {
    endpoint: string;
    queryParams: {
        sender_eth_address: string;
    };
};
export declare const getUndisbursedChallenges: (limit: number | null, offset: number | null, completedBlockNumber: string | null, encodedUserId: number | null) => {
    endpoint: string;
    queryParams: {
        limit: number | null;
        offset: number | null;
        completed_blocknumber: string | null;
        user_id: number | null;
    };
};
export declare const verifyToken: (token: string) => {
    endpoint: string;
    queryParams: {
        token: string;
    };
};
export declare const getUserReplicaSet: (encodedUserId: string) => {
    endpoint: string;
    timeout: number;
};
export declare const getUnclaimedId: (type: 'users' | 'playlists' | 'tracks') => {
    endpoint: string;
    timeout: number;
    queryParams: {
        noCache: string;
    };
};
export declare const getUserListenCountsMonthly: (encodedUserId: string, startTime: string, endTime: string) => {
    endpoint: string;
    timeout: number;
    queryParams: {
        start_time: string;
        end_time: string;
    };
};
