import { forwardRef, type HTMLAttributes } from "react";
import { NavbarExpandableMenu, NavbarExpandableMenuContent, NavbarExpandableMenuTrigger } from "./navbar-expandable-menu";
interface NavbarLogoProps extends React.HTMLAttributes<HTMLDivElement> {
    /**
     * Change the default rendered element for the one passed as a child, merging their props and behavior.
     *
     * @default false
     */
    asChild?: boolean;
}
/**
 * A fixed Posten or Bring logo.
 *
 * The logo follows the brand theme, so if the class `hds-theme-bring` is set the Bring logo will be shown instead of the Posten logo
 */
export declare const NavbarLogo: import("react").ForwardRefExoticComponent<NavbarLogoProps & import("react").RefAttributes<HTMLDivElement>>;
interface NavbarLogoAndServiceText extends HTMLAttributes<HTMLDivElement> {
    /**
     * The text display next to the logo
     */
    children: React.ReactNode;
    /**
     * The text variant
     *
     * Use `service` for internal applications
     *
     * Use `flagship` for public facing applications
     */
    variant: "service" | "flagship";
    /**
     * Change the default rendered element for the one passed as a child, merging their props and behavior.
     *
     * @default false
     */
    asChild?: boolean;
}
/**
 * Internal service or flagship text next to either the Posten or Bring logo
 *
 * The logo follows the brand theme, so if the class `hds-theme-bring` is set the Bring logo will be shown instead of the Posten logo
 */
export declare const NavbarLogoAndServiceText: import("react").ForwardRefExoticComponent<NavbarLogoAndServiceText & import("react").RefAttributes<HTMLDivElement>>;
interface NavbarItemIconProps extends React.HTMLAttributes<HTMLDivElement> {
    children: React.ReactNode;
}
/**
 * Icon to be used inside a `Navbar.Item`, `Navbar.ButtonItem`, or `Navbar.LinkItem`
 */
export declare const NavbarItemIcon: import("react").ForwardRefExoticComponent<NavbarItemIconProps & import("react").RefAttributes<HTMLDivElement>>;
interface NavbarItemProps extends React.HTMLAttributes<HTMLDivElement> {
    children: React.ReactNode;
    /**
     * Change the default rendered element for the one passed as a child, merging their props and behavior.
     *
     * @default false
     */
    asChild?: boolean;
}
/**
 * Generic Navbar item
 *
 * Use `Navbar.ButtonItem` or `Navbar.LinkItem` for links and buttons
 */
export declare const NavbarItem: import("react").ForwardRefExoticComponent<NavbarItemProps & import("react").RefAttributes<HTMLDivElement>>;
interface NavbarButtonItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
    children: React.ReactNode;
    /**
     * Change the default rendered element for the one passed as a child, merging their props and behavior.
     *
     * @default false
     */
    asChild?: boolean;
}
export declare const NavbarButtonItem: import("react").ForwardRefExoticComponent<NavbarButtonItemProps & import("react").RefAttributes<HTMLButtonElement>>;
interface NavbarLinkItemProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
    children: React.ReactNode;
    /**
     * Change the default rendered element for the one passed as a child, merging their props and behavior.
     *
     * @default false
     */
    asChild?: boolean;
}
export declare const NavbarLinkItem: import("react").ForwardRefExoticComponent<NavbarLinkItemProps & import("react").RefAttributes<HTMLAnchorElement>>;
interface NavbarNavigationProps extends React.HTMLAttributes<HTMLDivElement> {
    children: React.ReactNode;
    /**
     * Change the default rendered element for the one passed as a child, merging their props and behavior.
     *
     * @default false
     */
    asChild?: boolean;
}
export declare const NavbarNavigation: import("react").ForwardRefExoticComponent<NavbarNavigationProps & import("react").RefAttributes<HTMLDivElement>>;
export interface NavbarProps extends HTMLAttributes<HTMLElement> {
    /**
     * Navbar variant
     *
     * By default the `posten.no` variant is used which has a fixed logo and a fixed height of 112px
     *
     * For internal services or flagship services use the `service` should be used
     *
     * @default "default"
     */
    variant?: "default" | "service";
    /**
     * Change the default rendered element for the one passed as a child, merging their props and behavior.
     *
     * @default false
     */
    asChild?: boolean;
}
/**
 * 🚨 WORK IN PROGRESS 🚨
 */
export declare const Navbar: NavbarType;
type NavbarType = ReturnType<typeof forwardRef<HTMLDivElement, NavbarProps>> & {
    Logo: typeof NavbarLogo;
    LogoAndServiceText: typeof NavbarLogoAndServiceText;
    ExpandableMenu: typeof NavbarExpandableMenu;
    ExpandableMenuTrigger: typeof NavbarExpandableMenuTrigger;
    ExpandableMenuContent: typeof NavbarExpandableMenuContent;
    Item: typeof NavbarItem;
    ButtonItem: typeof NavbarButtonItem;
    LinkItem: typeof NavbarLinkItem;
    ItemIcon: typeof NavbarItemIcon;
    Navigation: typeof NavbarNavigation;
};
export {};
//# sourceMappingURL=navbar.d.ts.map