import { ReactElement } from 'react';

export type NavbarPropsDesktop = {
    credits: number;
    totalCredits?: number;
    className?: React.ComponentProps<'div'>['className'];
    clickDisable?: boolean;
    icons: {
        help: IconProps;
        notification?: IconProps;
        list: Array<IconProps>;
        chat?: IconProps;
        invoices?: IconProps;
    };
    onRequestCredits?: (credits: string, phoneNumber: string) => void;
    onProceedToPayment?: (credits: string, phoneNumber: string) => void;
    buyCreditsOptions?: string[];
    minimumCreditsToBuy?: number;
    requestOnly?: boolean;
    id?: string;
    login: {
        isLoggedIn: boolean;
        onClick?: () => void;
    };
    logo: {
        alt: string;
        src: string;
    };
    profile: {
        popoverOptions: Array<Array<NavbarProfilePopoverOptions>>;
        email?: string;
        name?: string;
        src?: string;
        onClick?: () => void;
    };
};
type NavbarProfilePopoverOptions = {
    label: string;
    disabled: boolean;
    onClick: () => void;
    icon?: React.ReactNode;
};
/**
 * iconSrc: 20x20px
 * */
export type IconProps = {
    alt: string;
    src: string;
    className?: React.ComponentProps<'div'>['className'];
    isActive?: boolean;
    isNew?: boolean;
    tooltipText?: string;
    wrapper?: (children: React.ReactNode) => ReactElement;
    onClick?: () => void;
    disabled?: boolean;
};
type BottomItems = {
    label: string;
    onClick: () => void;
};
export type NavbarPropsMobile = {
    credits: NavbarPropsDesktop['credits'];
    totalCredits?: NavbarPropsDesktop['totalCredits'];
    profile: NavbarPropsDesktop['profile'];
    icons: NavbarPropsDesktop['icons']['list'];
    clickDisable?: boolean;
    logo: NavbarPropsDesktop['logo'] & {
        text: string;
    };
    onRequestCredits?: (credits: string, phoneNumber: string) => void;
    onProceedToPayment?: (credits: string, phoneNumber: string) => void;
    buyCreditsOptions?: string[];
    minimumCreditsToBuy?: number;
    requestOnly?: boolean;
    containerId?: string;
    id?: string;
    logoutPanel: {
        handleLogout: () => void;
        bottomItems: Array<BottomItems>;
    };
};
export type IconExtendedProps = IconProps & {
    label: string;
    tooltipText?: string;
    collapsed?: boolean;
};
export type NavbarExtendedProps = {
    credits: number;
    totalCredits?: number;
    clickDisable?: boolean;
    className?: React.ComponentProps<'div'>['className'];
    icons: {
        help: IconExtendedProps;
        notification?: IconExtendedProps;
        chat?: IconExtendedProps;
        list?: Array<IconExtendedProps>;
        invoices?: IconExtendedProps;
    };
    onRequestCredits?: (credits: string, phoneNumber: string) => void;
    onProceedToPayment?: (credits: string, phoneNumber: string) => void;
    buyCreditsOptions?: string[];
    minimumCreditsToBuy?: number;
    requestOnly?: boolean;
    id?: string;
    collapsed?: boolean;
    onCollapsedChange?: (collapsed: boolean) => void;
    width?: string;
    collapsedWidth?: string;
    showToggle?: boolean;
    togglePosition?: {
        top?: string;
        right?: string;
        left?: string;
        bottom?: string;
    };
    logo: {
        alt: string;
        src: string;
        text: string;
    };
    profile: {
        popoverOptions: Array<Array<NavbarProfilePopoverOptions>>;
        email?: string;
        name?: string;
        src?: string;
        onClick?: () => void;
        collapsed?: boolean;
    };
    sections: Array<{
        title: string;
        items: Array<IconExtendedProps>;
    }>;
};
export {};
//# sourceMappingURL=navbar.types.d.ts.map