import type { LucideIcon } from 'lucide-react';
import type { AnchorHTMLAttributes, ReactNode } from 'react';
export interface IconRailItem {
    id: string;
    label: string;
    icon: LucideIcon;
    to: string;
    badge?: ReactNode;
}
export interface IconRailRenderLinkArgs {
    item: IconRailItem;
    isActive: boolean;
    className: string;
    children: ReactNode;
    linkProps: AnchorHTMLAttributes<HTMLAnchorElement>;
}
export type IconRailLabelVisibility = 'tooltip' | 'visible';
export interface IconRailProps {
    mainItems: IconRailItem[];
    utilityItems?: IconRailItem[];
    footer?: ReactNode;
    activeId?: string;
    renderLink?: (args: IconRailRenderLinkArgs) => ReactNode;
    labelVisibility?: IconRailLabelVisibility;
    className?: string;
}
export interface RailDividerProps {
    pinnedBottom: boolean;
    onToggle: () => void;
}
export declare function RailDivider({ pinnedBottom, onToggle }: RailDividerProps): import("react/jsx-runtime").JSX.Element;
export declare function IconRail({ mainItems, utilityItems, footer, activeId, renderLink, labelVisibility, className, }: IconRailProps): import("react/jsx-runtime").JSX.Element | null;
