import RootStore from "./RootStore";
import { Speaker } from "./SpeakerStore";
export interface Track {
    id: number;
    externalId: string;
    name: string;
    color: string;
}
export default class EventStore {
    private readonly rootStore;
    readonly eventItems: EventItem[];
    constructor(rootStore: RootStore);
    findByNameOrSlug(str: string): EventItem | undefined;
    get bookmarked(): EventItem[];
    get visited(): EventItem[];
    get tracks(): Track[];
    getEventsByTrack(trackId: number): EventItem[];
    getEventsBySpeaker(speakerId: number): EventItem[];
    get venues(): any[];
    getEventsByVenue(venueId: number): EventItem[];
    get pastEvents(): EventItem[];
    get futureEvents(): EventItem[];
    get liveEvents(): EventItem[];
    get todayEvents(): EventItem[];
    get tomorrowEvents(): EventItem[];
    replaceBookmarked(ids: number[]): void;
    replaceVisited(ids: number[]): void;
}
export declare class EventItem {
    readonly id: number;
    readonly externalId: string;
    readonly boothId: number;
    readonly name: string;
    readonly description: string;
    readonly startDate: string;
    readonly endDate: string;
    readonly logoFile?: string | undefined;
    readonly speakers: Speaker[];
    readonly tracks: Track[];
    readonly entity: {
        readonly type: "event";
    };
    readonly slug: string;
    bookmarked: boolean;
    visited: boolean;
    constructor(id: number, externalId: string, boothId: number, name: string, description: string, startDate: string, endDate: string, logoFile?: string | undefined, speakers?: Speaker[], tracks?: Track[], entity?: {
        readonly type: "event";
    });
    get isEnded(): boolean;
    get hasSpeakers(): boolean;
    get hasTracks(): boolean;
    get primaryTrack(): Track | null;
    get speakerNames(): string;
    get trackNames(): string;
}
//# sourceMappingURL=EventStore.d.ts.map