import type Bottleneck from 'bottleneck';
import AlbumAPI, { LimiterAlbumAPI } from './album/AlbumAPI.js';
import ArticleAPI, { LimiterArticleAPI } from './article/ArticleAPI.js';
import AutocompleteAPI, { LimiterAutocompleteAPI } from './autocomplete/AutocompleteAPI.js';
import BandAPI, { LimiterBandAPI } from './band/BandAPI.js';
import DiscoveryAPI, { LimiterDiscoveryAPI } from './discovery/DiscoveryAPI.js';
import FanAPI, { LimiterFanAPI } from './fan/FanAPI.js';
import ImageAPI, { LimiterImageAPI } from './image/ImageAPI.js';
import SearchAPI, { LimiterSearchAPI } from './search/SearchAPI.js';
import ShowAPI, { LimiterShowAPI } from './show/ShowAPI.js';
import TagAPI, { LimiterTagAPI } from './tag/TagAPI.js';
import TrackAPI, { LimiterTrackAPI } from './track/TrackAPI.js';
import Cache, { CacheDataType } from './utils/Cache.js';
import StreamAPI from './stream/StreamAPI.js';
export interface BandcampFetchParams {
    cookie?: string | null;
}
export default class BandcampFetch {
    #private;
    readonly album: AlbumAPI;
    readonly track: TrackAPI;
    readonly discovery: DiscoveryAPI;
    readonly image: ImageAPI;
    readonly band: BandAPI;
    readonly tag: TagAPI;
    readonly article: ArticleAPI;
    readonly show: ShowAPI;
    readonly fan: FanAPI;
    readonly search: SearchAPI;
    readonly autocomplete: AutocompleteAPI;
    readonly stream: StreamAPI;
    readonly limiter: {
        readonly album: LimiterAlbumAPI;
        readonly track: LimiterTrackAPI;
        readonly discovery: LimiterDiscoveryAPI;
        readonly image: LimiterImageAPI;
        readonly band: LimiterBandAPI;
        readonly tag: LimiterTagAPI;
        readonly article: LimiterArticleAPI;
        readonly show: LimiterShowAPI;
        readonly fan: LimiterFanAPI;
        readonly search: LimiterSearchAPI;
        readonly autocomplete: LimiterAutocompleteAPI;
        readonly stream: StreamAPI;
        updateSettings: (options?: Bottleneck.ConstructorOptions) => void;
    };
    constructor(params?: BandcampFetchParams);
    setCookie(value?: string | null): void;
    get cookie(): string | null | undefined;
    get cache(): CacheWrapper;
}
export declare class CacheWrapper {
    #private;
    constructor(cache: Cache);
    clear(type?: CacheDataType): void;
    setTTL(type: CacheDataType, ttl: number): void;
    setMaxPages(maxPages: number): void;
}
//# sourceMappingURL=BandcampFetch.d.ts.map