import { COMPANY_PREVIEW } from "../../index";
import { LANGUAGE_TYPES } from "../../components";
export interface Profile {
    userInfo: UserInfo;
    userSimulationSelectedName?: string;
    showProfileManagement: boolean;
    showPartnerDelegationSwitchUser: boolean;
    showMyListLink: boolean;
}
export interface UserInfo {
    familyName?: string;
    givenName?: string;
    email?: string;
    phoneNumber?: string;
    landlineNumber?: string;
    telephoneNumber?: string;
    scSourceIdentification?: string;
    preferredLanguage?: LANGUAGE_TYPES | `${LANGUAGE_TYPES}`;
}
export interface Company {
    city: string;
    cma: string;
    name?: string;
    street?: string;
    houseNumber?: string;
    houseName?: string;
    zipCode?: string;
    partnerId?: string;
    hqCsaId?: string;
    isMySBLinkVisible?: boolean;
    isMySPLinkVisible?: boolean;
    additionalCompanies?: ICompanyDetail[];
}
export interface ICompanyDetail {
    customerName: string;
    cmaId: string;
    isHomeCompany?: boolean;
    companyIndex?: string;
    zipCode?: string;
    city?: string;
    street?: string;
    houseNumber?: string;
    houseName?: string;
    alias?: string;
    skey?: string;
    uid?: string;
    reference?: string;
    title?: string;
    status?: string;
    phoneNumber?: string;
    location?: string;
}
export interface IAdditionalSearchCompany {
    type: COMPANY_PREVIEW;
    value?: string;
}
export interface Cart {
    amount: number;
    redirectHref: string;
}
export interface Apps {
    appList: (App | AppCategory)[];
    lastUsedAppList?: App[];
    isCompanySwitchFilterVisible?: boolean;
}
export interface AppCategory {
    title: string;
    appList: App[];
}
export interface App {
    title: string;
    event: AppEvent;
    isCompanySwitch?: boolean;
}
export interface AppEvent {
    url: string;
    linkOpensAs: OpenAsType;
    appName?: string;
}
export interface NotificationInfo {
    requiredNotifications: NotificationGroup;
    otherNotifications: NotificationGroup[];
    badge?: number;
    badgeOther?: number;
    badgeRequired?: number;
}
export interface NotificationGroup {
    count?: number;
    items: NotificationItem[];
    seeAllTitle?: string;
    seeAllHref?: string;
    title: string;
}
export interface NotificationItem {
    date: string;
    href: string;
    icon: string;
    isUnread?: boolean;
    title: string;
    itemProperties?: any;
}
export interface AppMenuFilter {
    filterValue: string | null;
    supportsCompanySwitch: boolean | null;
}
export type OpenAsType = '_top' | '_form' | 'integrated_eService' | 'not_integrated_eService' | 'not_integrated_eservices' | 'header_integrated_eService_2' | 'header_integrated_eService' | 'nodomain' | '_blank';
export type SdxBannerMessageType = 'general' | 'confirmation' | 'warning';
