import { ElementType, PropsWithChildren } from 'react';
import { GNBListRootProps, GNBListItemProps, UserInfoProps } from './GNBList.types';
/**
* GNB 리스트의 루트 컴포넌트
*
* @description
* GNB 리스트의 컨테이너 역할을 합니다.
* - withUserInfo prop에 따라 스타일 자동 조정
*
* @param {Object} props
* @param {boolean} [props.withUserInfo=false] - 사용자 정보 포함 여부
* @param {string} [props.className] - 추가 CSS 클래스
* @param {ReactNode} props.children - 메뉴 구성 요소 (UserInfo, List, SubList)
*
* @example
* // 기본 메뉴 리스트
*
*
* - 프로젝트
* - 설정
*
*
*
* @example
* // 사용자 정보 포함 메뉴
*
*
*
* - 계정 설정
*
*
* - 로그아웃
*
*
*/
declare const Root: ({ withUserInfo, children, className, }: GNBListRootProps) => import("react/jsx-runtime").JSX.Element;
/**
* 사용자 정보 컴포넌트
*
* @description
* 사용자의 프로필 이미지, 이름, 이메일을 표시합니다.
*
* @param {Object} props
* @param {string} [props.imgUrl] - 프로필 이미지 URL
* @param {string} [props.username] - 사용자 이름
* @param {string} [props.email] - 사용자 이메일
* @param {() => void} [props.onClick] - 프로필 이미지 클릭 핸들러
* @param {ReactNode} [props.children] - 액션 버튼 (예: 프로필 수정, 내 프로젝트)
*
* @example
* handleProfileEdit()}
* >
*
*
*
*/
declare const UserInfo: ({ imgUrl, username, email, children, onClick, }: UserInfoProps) => import("react/jsx-runtime").JSX.Element;
/**
* 메인 메뉴 리스트 컴포넌트
*
* @description
* 주요 메뉴 아이템들을 담는 컨테이너입니다.
* - 텍스트 색상 gray-900 (주요 메뉴)
*
* @param {Object} props
* @param {ReactNode} props.children - 메뉴 아이템들 (Item 컴포넌트)
*
* @example
*
* - 프로젝트
* - 의뢰하기
* - 고객센터
*
*/
declare const List: ({ children }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
/**
* 서브 메뉴 리스트 컴포넌트
*
* @description
* 부가적인 메뉴 아이템들을 담는 컨테이너입니다.
* - 텍스트 색상 gray-600 (보조 메뉴)
*
* @param {Object} props
* @param {ReactNode} props.children - 서브 메뉴 아이템들 (Item 컴포넌트)
*
* @example
*
* - 설정
* - 로그아웃
*
*/
declare const SubList: ({ children }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
/**
* 메뉴 아이템 컴포넌트
*
* @description
* 개별 메뉴 아이템을 렌더링합니다.
* - 기본은 `` 태그이며, `as` prop으로 Next.js Link 등 임의의 컴포넌트 주입 가능
* - 키보드 포커스 및 hover 스타일 지원
*
* @param {Object} props
* @param {string} props.href - 이동할 페이지 경로 (필수)
* @param {ElementType} [props.as='a'] - anchor로 렌더할 컴포넌트 (예: next/link)
* @param {ReactNode} props.children - 메뉴 텍스트
* @param {boolean} [props.hasNew=false] - New 뱃지 표시 여부
* @param {string} [props.className] - Link에 적용할 추가 CSS 클래스
* @param {string} [props.textClassName] - 텍스트에 적용할 CSS 클래스
*
* @example
* // 기본 사용
* -
* 계정 설정
*
*
* @example
* // New 뱃지 포함
* -
* 새로운 기능
*
*
* @example
* // 커스텀 스타일
* -
* 특별 메뉴
*
*/
declare const Item: ({ hasNew, children, className, textClassName, href, as, ...rest }: GNBListItemProps) => import("react/jsx-runtime").JSX.Element;
export { Root, UserInfo, List, SubList, Item };