import { Event, EventStatus, EventType, RsvpStatus } from "../../interfaces/models/Event"; import { PaginatedResponse } from "../../interfaces/PaginatedResponse"; export interface EventTitleFilters { hasTitle?: "true" | "false"; includes?: string | string[]; doesNotInclude?: string | string[]; } export interface EventDescriptionFilters { hasDescription?: "true" | "false"; includes?: string | string[]; doesNotInclude?: string | string[]; } export interface EventLocationFilters { latitude: string | number; longitude: string | number; radius: string | number; } export interface FetchManyEventsProps { page?: number; limit?: number; sortBy?: "startTime" | "going"; sortDir?: "asc" | "desc"; timeWindow?: "upcoming" | "ongoing" | "past"; startsAfter?: string; startsBefore?: string; spaceId?: string; hostId?: string; type?: EventType; status?: EventStatus; /** RSVP statuses the logged-in user RSVP'd with, e.g. ["going","maybe"]. */ myRsvp?: RsvpStatus | RsvpStatus[]; locationFilters?: EventLocationFilters; titleFilters?: EventTitleFilters; descriptionFilters?: EventDescriptionFilters; /** Associations to expand, e.g. ["user", "space", "files", "userRsvp"]. */ include?: string | string[]; } declare function useFetchManyEvents(): (props?: FetchManyEventsProps) => Promise>; export default useFetchManyEvents;