import { Logo, MarketMaterial, RawExhibitor } from '@expofp/schema';
import { Booth } from './BoothStore';
import { Category } from './CategoryStore';
import { EventItem } from './EventStore';
import RootStore from './RootStore';
export declare enum RebookingState {
    Unasked = 0,
    Accepted = 1,
    Rejected = 2,
    Undecided = 3
}
export default class ExhibitorStore {
    private readonly rootStore;
    readonly exhibitors: Exhibitor[];
    private timeout;
    constructor(rootStore: RootStore);
    highlightedByExternalIds: never[];
    rebookingStateChangeRequested: boolean;
    rebookingStateSaved: boolean;
    get exhibitorById(): Map<number, Exhibitor>;
    get exhibitorByExternalId(): Map<string, Exhibitor>;
    get exhibitorByName(): Map<string, Exhibitor>;
    get exhibitorBySlug(): Map<string, Exhibitor>;
    get bookmarked(): Exhibitor[];
    get visited(): Exhibitor[];
    get advertised(): Exhibitor[];
    replaceBookmarked(ids: number[]): void;
    replaceVisited(ids: number[]): void;
    setRebookingState(exhibitor: Exhibitor, state: RebookingState, rebookingNote: string): void;
    findExhibitor(str: string): Exhibitor | undefined;
}
export declare class Exhibitor implements Omit<RawExhibitor, 'categories' | 'booths'> {
    private readonly store;
    readonly id: number;
    readonly name: string;
    readonly externalId: string;
    featured: boolean;
    readonly advertise: boolean;
    readonly description: string;
    readonly address: string;
    readonly address2: string;
    readonly city: string;
    readonly state: string;
    readonly zip: string;
    readonly country: string;
    readonly phone1: string;
    readonly website: string;
    readonly facebook: string;
    readonly instagram: string;
    readonly linkedin: string;
    readonly twitter: string;
    readonly googlePlus: string;
    readonly xing: string;
    readonly youtube: string;
    readonly email: string;
    readonly privateEmail: string;
    readonly customButtonTitle: string;
    readonly customButtonUrl: string;
    readonly customButton2Title: string;
    readonly customButton2Url: string;
    readonly customButton3Title: string;
    readonly customButton3Url: string;
    readonly leadingImageUrl: string;
    readonly leadingImageLinkUrl: string;
    readonly videoUrl: string;
    readonly order: number;
    /** Always the object form — `normalizeLegacyData` converts legacy string logos. */
    readonly logo?: Logo;
    readonly logoInBooth: boolean;
    readonly gallery: string[];
    readonly marketMaterials: MarketMaterial[];
    readonly slug: string;
    bookmarked: boolean;
    visited: boolean;
    rebookingState: RebookingState;
    rebookingNote: string;
    readonly booths: Booth[];
    readonly categories: Category[];
    readonly schedule: EventItem[];
    readonly entity: {
        readonly type: 'exhibitor';
    };
}
//# sourceMappingURL=ExhibitorStore.d.ts.map