import { ICategoryV2 } from "@/app/dashboard/models/EventCategory";
import { ILocationV2 } from "@/app/dashboard/models/Location";
import { IOrganization } from "./Organization";
export interface IEventsResponse {
    events: IEventResponse[];
}
interface IEventResponse {
    DateTime: string;
    Description: string;
    EndTime: string;
    EntryRequirement: string | null;
    EventID: string;
    Name: string;
    cheapest_ticket_price: number;
    image_url: string | null;
    location: ILocationResponse;
    organizer: IOrganizerResponse;
}
interface ILocationResponse {
    Address: string;
    Capacity: number;
    LocationID: string;
    Name: string;
    direction_url: string | null;
    latitude: string | null;
    longitude: string | null;
}
interface IOrganizerResponse {
    ContactInfo: string;
    Name: string;
    OrganizerID: string;
}
export interface IEvents {
    events: IEvent[];
}
export interface IEvent {
    dateTime: string;
    description: string;
    endTime: string;
    entryRequirement: string | null;
    eventID: string;
    name: string;
    cheapestTicketPrice: number;
    imageUrl: string | null;
    location: ILocation;
    organizer: IOrganizer;
}
interface ILocation {
    address: string;
    capacity: number;
    locationID: string;
    name: string;
    directionUrl: string | null;
    latitude: string | null;
    longitude: string | null;
}
interface IOrganizer {
    contactInfo: string;
    name: string;
    organizerID: string;
}
export declare function convertEventsResponse(response: IEventsResponse): IEvents;
export declare function formatDateTime(dateTimeString: string): string;
export interface IEventV2 {
    id: string;
    name: string;
    image: string;
    eventImages?: string[];
    allowResale: boolean;
    startTimeStamp: string;
    endTimeStamp: number;
    description: string;
    htmlDescription: string;
    status: string;
    category: ICategoryV2;
    location: ILocationV2;
    organization: IOrganization;
    minTicketPrice: number;
    maxTicketPrice: number;
    hostedEventCount: number;
    durationMessage: string;
    createdAt: string;
    updatedAt: string;
    transactionFee: string;
    displayPriority: number;
    upcomingEvents?: IEventV2[];
    isTicketSalesClosed?: boolean;
    maxTicketLimit: number;
    isSeatingPublished?: boolean;
    seatingImage?: string;
}
export interface ICreateEvent extends IEventV2 {
    startTime: string;
    endTime: string;
    locationId: string;
    categoryId: string;
}
export declare enum EventStatus {
    Published = "PUBLISHED",
    Draft = "DRAFT",
    SoldOut = "SOLD_OUT",
    Blocked = "BLOCKED",
    PendingAccept = "PENDING_ACCEPT",
    PublishedAsPrivate = "PUBLISHED_AS_PRIVATE"
}
export {};
//# sourceMappingURL=Event.d.ts.map