import { EventItem } from "./EventStore";
import RootStore from "./RootStore";
export declare class SpeakerItem {
    readonly id: number;
    readonly externalId: string;
    readonly name: string;
    readonly company: string;
    readonly jobTitle: string;
    readonly photoFile?: string | undefined;
    readonly entity: {
        readonly type: "speaker";
    };
    readonly slug: string;
    bookmarked: boolean;
    constructor(id: number, externalId: string, name: string, company: string, jobTitle: string, photoFile?: string | undefined, entity?: {
        readonly type: "speaker";
    });
    get displayName(): string;
    get fullTitle(): string;
    get hasPhoto(): boolean;
    get hasCompany(): boolean;
    get hasJobTitle(): boolean;
}
export type Speaker = SpeakerItem;
export default class SpeakerStore {
    private readonly rootStore;
    readonly speakersMap: Map<number, SpeakerItem>;
    selectedSpeaker: Speaker | null;
    constructor(rootStore: RootStore);
    get speakers(): Speaker[];
    getSpeakerById(id: number): SpeakerItem | undefined;
    getSpeakerBySlug(slug: string): SpeakerItem | undefined;
    addSpeaker(speakerData: any): SpeakerItem;
    get companies(): string[];
    get jobTitles(): string[];
    getSpeakersByCompany(company: string): Speaker[];
    getSpeakersByJobTitle(jobTitle: string): Speaker[];
    getEventsBySpeaker(speakerId: number): EventItem[];
    findBySlug(slug: string): Speaker | undefined;
    selectSpeaker(speaker: Speaker, focus?: boolean): void;
    get bookmarked(): Speaker[];
    replaceBookmarked(ids: number[]): void;
    clearSelectedSpeaker(): void;
}
//# sourceMappingURL=SpeakerStore.d.ts.map