import { Collection } from '@discordjs/collection';
import { CalendarEventRsvpStatus } from 'guilded-api-typings';
import { CalendarEvent } from '../../structures/calendarEvent/CalendarEvent';
import { CalendarEventRsvp } from '../../structures/calendarEvent/CalendarEventRsvp';
import { BaseManager, FetchManyOptions, FetchOptions } from '../BaseManager';
/**
 * The manager of RSVPs that belong to a calendar event.
 * @example new CalendarEventRsvpManager(calendarEvent);
 */
export declare class CalendarEventRsvpManager extends BaseManager<string, CalendarEventRsvp> {
    readonly calendarEvent: CalendarEvent;
    /** @param calendarEvent The calendar event the RSVPs belong to. */
    constructor(calendarEvent: CalendarEvent);
    /**
     * Fetch a RSVP from the calendar event, or cache.
     * @param calendarEventRsvp The calendar event RSVP to fetch.
     * @param options The options to fetch the calendar event RSVP with.
     * @returns The fetched calendar event RSVP.
     * @example calanderEventRsvps.fetch(calendarEventRsvp);
     */
    fetch(calendarEventRsvp: string | CalendarEventRsvp, options?: FetchOptions): Promise<CalendarEventRsvp>;
    /**
     * Fetch RSVPs from the calendar event.
     * @param options The options to fetch calendar event RSVPs with.
     * @returns The fetched calendar event RSVPs.
     * @example calanderEventRsvps.fetch();
     */
    fetch(options?: FetchManyOptions): Promise<Collection<string, CalendarEventRsvp>>;
    /** @ignore */
    private fetchSingle;
    /** @ignore */
    private fetchMany;
    /**
     * Edit a RSVP in the calendar event.
     * @param calendarEventRsvp The calendar event RSVP to edit.
     * @param status The status of the RSVP.
     * @returns The edited calendar event RSVP.
     * @example calanderEventRsvps.edit(calendarEventRsvp, 'going');
     */
    edit(calendarEventRsvp: string | CalendarEventRsvp, status: CalendarEventRsvpStatus): Promise<CalendarEventRsvp>;
    /**
     * Delete a RSVP from the calendar event.
     * @param calendarEventRsvp The calendar event RSVP to delete.
     * @example calanderEventRsvps.delete(calendarEventRsvp);
     */
    delete(calendarEventRsvp: string | CalendarEventRsvp): Promise<void>;
}
//# sourceMappingURL=CalendarEventRsvpManager.d.ts.map