import { Placement } from '@popperjs/core';
import { IHotelColorScheme, IRoomstayMember } from '@roomstay/core';
import { MenuItemType } from '../../components/generic/modal/SigninModal/AuthenticatedUserModal';
import { BaseEngine, BaseEngineConfig } from '../BaseEngine';
import { ConfigCompany } from '../../models/Client/Hotel/Company';
import { ConfigHotel, Hotel } from '../../models/Client/Hotel/Hotel';
import { Language } from '../../providers/LanguageProvider';
export interface GroupWidgetConfig {
    name?: string;
    logo?: string;
    logoLink?: string;
    checkoutUrl?: string;
    colors?: IHotelColorScheme;
    defaultLanguage?: Language;
    privacyPolicyUrl?: string;
    hotels: ConfigHotel[];
}
export interface MemberPortalWidgetConfig extends BaseEngineConfig {
    company: Pick<ConfigCompany, 'colors' | 'companyShort' | 'companyId'>;
    hotel?: Hotel;
    groupWidgetConfig?: GroupWidgetConfig;
    authMenuItem?: MenuItemType[];
    buttonClass?: string;
    overlayPlacement?: Placement;
    fallbackPlacements?: Placement;
    onSignedIn?: (user: IRoomstayMember) => void;
    onSignedOut?: () => void;
    renderInput?: (member?: IRoomstayMember | null, isLoading?: boolean) => JSX.Element | string;
}
export declare class MemberPortalWidget extends BaseEngine<MemberPortalWidgetConfig> {
    constructor(bookingContainer: HTMLElement, config?: MemberPortalWidgetConfig);
    setConfig(config: MemberPortalWidgetConfig): void;
    protected render(): Promise<void>;
    static readonly MEMBER_PORTAL_PARAM = "memberPortal";
}
