import BaseAPIWithImageSupport, { type BaseAPIWithImageSupportParams } from '../common/BaseAPIWithImageSupport.js';
import { type TagsAndLocations, type DiscoverOptions, type DiscoverParams, type DiscoverResult, type DiscoverResultContinuation, type SanitizedDiscoverParams } from '../types/Discovery.js';
import type Limiter from '../utils/Limiter.js';
interface DiscoverRequestPayload {
    category_id: number;
    cursor: string;
    geoname_id: number;
    include_result_types: string[];
    size: number;
    slice: string;
    tag_norm_names: string[];
    time_facet_id: number | null;
}
export default class DiscoveryAPI extends BaseAPIWithImageSupport {
    #private;
    getAvailableOptions(): Promise<DiscoverOptions>;
    sanitizeDiscoverParams(params?: DiscoverParams): Promise<SanitizedDiscoverParams>;
    discover(params?: DiscoverParams | DiscoverResultContinuation): Promise<DiscoverResult>;
    /**
     * @internal
     */
    protected static getDiscoverRequestPayload(params: SanitizedDiscoverParams | DiscoverResultContinuation): DiscoverRequestPayload;
    getRecommendedTagsAndLocations(): Promise<TagsAndLocations>;
}
export declare class LimiterDiscoveryAPI extends DiscoveryAPI {
    #private;
    constructor(params: BaseAPIWithImageSupportParams & {
        limiter: Limiter;
    });
    getAvailableOptions(): Promise<DiscoverOptions>;
    sanitizeDiscoverParams(params: DiscoverParams): Promise<SanitizedDiscoverParams>;
    discover(params: DiscoverParams): Promise<DiscoverResult>;
    getRecommendedTagsAndLocations(): Promise<TagsAndLocations>;
}
export {};
//# sourceMappingURL=DiscoveryAPI.d.ts.map