import * as React from 'react';
import { type GnbAsideProps } from './Aside';
import { type MenuItem as GnbMenuItem } from './Menu';
import { type GnbDeleteNotifications, type GnbNotificationItem, type GnbRenderNotificationItem } from './Notification';
import { type MenuLogoKey, type ProductNameType } from './productLogos';
type MenuItem = GnbMenuItem<MenuLogoKey>;
/** GNB 컴포넌트 속성 */
export interface Props extends Omit<GnbAsideProps, 'className' | 'notificationSlot'> {
    /**
     * 최상위 헤더 컨테이너에 적용할 사용자 정의 클래스명.
     * 동일한 GNB를 여러 테마에서 공유할 때 스타일 오버라이드 용도로 사용할 수 있습니다.
     */
    className?: string;
    /**
     * 제품별 보조 로고와 이동 링크 설정.
     * 제공하지 않으면 바르코 기본 로고만 노출되며, `beta`가 `true`일 때 베타 배지를 함께 렌더링합니다.
     */
    product?: {
        /**
         * 제품 식별자.
         * `PRODUCT_LOGOS`가 지원하는 값만 허용되며, 로고 아이콘과 접근성 라벨 매핑에 사용됩니다.
         */
        name: ProductNameType;
        /** 제품 상세 페이지 혹은 랜딩 페이지 URL. */
        url: string;
        /**
         * 베타 배지를 표시할지 여부.
         * 제품 출시 초기 단계에서 베타 상태임을 표시할 때 사용합니다.
         */
        beta?: boolean;
    };
    /**
     * 브랜드 로고를 선택합니다.
     * 기본값은 'varco'이며, 'vaetki'를 전달하면 VAETKI 로고가 노출됩니다.
     */
    brandLogo?: 'varco' | 'vaetki';
    /**
     * 패키지형 서비스 전용 GNB 모드입니다.
     * `true`면 모바일에서 프로필 대신 패키지 메뉴 토글/패널을 사용하고,
     * 패널 내부에 메뉴와 어사이드(언어/유저 영역)를 함께 렌더링합니다.
     * 또한 `product.beta` 배지를 모바일에서도 노출합니다.
     */
    packageMode?: boolean;
    /**
     * 데스크톱에서 메인 메뉴를 헤더 가로 중앙에 고정 배치합니다.
     * `packageMode`가 true일 때만 레이아웃에 적용됩니다.
     */
    centerDesktopMenu?: boolean;
    /**
     * 메인 내비게이션 링크 구성.
     * 1뎁스 로고 메뉴(`logo`)와 텍스트 메뉴(`name`)를 혼합할 수 있으며,
     * 텍스트 메뉴는 필요 시 `children` 배열로 2뎁스 링크를 정의할 수 있습니다.
     */
    menuLinks?: MenuItem[];
    /** 알림 버튼/패널 노출 여부 (기본값: false) */
    showNotification?: boolean;
    /** 읽지 않은 알림 점 표시 여부 (기본값: false) */
    hasUnreadNotifications?: boolean;
    /** 알림 목록 데이터 */
    notifications?: GnbNotificationItem[];
    /** 알림 패널 헤더 노출 여부 (기본값: true) */
    showNotificationHeader?: boolean;
    /** 알림 아이템 클릭 콜백 */
    onClickNotification?: (item: GnbNotificationItem, index: number) => void;
    /** 선택한 알림 삭제 콜백 */
    onDeleteNotifications?: GnbDeleteNotifications;
    /** 알림 아이템 커스텀 렌더 슬롯 */
    renderNotificationItem?: GnbRenderNotificationItem;
}
declare const Gnb: {
    ({ className, product, brandLogo, supportedLanguages, language, showLanguageSelector, theme, user, menuLinks, credits, creditLinks, userLinks, familyLinks, onChangeLanguage, onClickLogin, onClickLogout, packageMode, centerDesktopMenu, showNotification, hasUnreadNotifications, notifications, showNotificationHeader, onClickNotification, onDeleteNotifications, renderNotificationItem, loginGtmId, ...props }: React.ComponentPropsWithRef<"header"> & Props): React.JSX.Element;
    displayName: string;
};
export { CreditSection, GnbAside, LangSection, LinksSection, UserSection, } from './Aside';
export type { CreditInfo, CreditMenuLink, FamilyItem, FamilyMenuLink, FamilyMenuSeparator, GnbAsideProps, ThemeConfig, UserInfo, UserMenuLink, } from './Aside';
export { MobilePackagePanel } from './MobilePackage';
export { MobileProfileEntry } from './MobileProfile';
export { MobileProfilePanel } from './MobileProfile/Panel';
export { MobileNotificationPanel } from './Notification';
export type { GnbDeleteNotifications, GnbNotificationItem, GnbRenderNotificationItem, GnbRenderNotificationItemArgs, } from './Notification';
export type { MenuItem };
export { Gnb };
export default Gnb;
//# sourceMappingURL=index.d.ts.map