import * as react_jsx_runtime from 'react/jsx-runtime';
import { LucideIcon } from 'lucide-react';
import { SidebarAccountOption } from './sidebar-account-switcher.js';

/** Expanded aside width (px). Collapsed rail uses `SIDEBAR_COLLAPSED_WIDTH`. */
declare const SIDEBAR_WIDTH = 284;
/** Nav row tone — `conversation` keeps icon-column alignment without a glyph; `viewAll` is compact. */
type SidebarNavItemTone = "default" | "conversation" | "viewAll";
/** Nav row: Lucide glyph, static asset (`iconSrc`), or text-only (`tone`). */
type SidebarNavItemConfig = {
    /** Stable React key when `label` is not unique (e.g. conversation titles). */
    id?: string;
    label: string;
    isActive?: boolean;
    href?: string;
    tone?: SidebarNavItemTone;
} & ({
    icon: LucideIcon;
    iconSrc?: never;
} | {
    iconSrc: string;
    icon?: never;
} | {
    tone: "conversation" | "viewAll";
    icon?: LucideIcon;
    iconSrc?: never;
});
interface SidebarNavSectionConfig {
    title?: string;
    items: SidebarNavItemConfig[];
}
interface SidebarUserConfig {
    primaryText: string;
    secondaryText: string;
    initials?: string;
    logoSrc?: string;
}
interface SidebarProductConfig {
    id: string;
    label: string;
    icon: LucideIcon;
}
interface SidebarProps {
    className?: string;
    logo?: React.ReactNode;
    /**
     * Target the logo link points to. Defaults to "/" — consumers with a richer
     * product surface (workspace's "/inventory") should override this.
     */
    homeHref?: string;
    user?: SidebarUserConfig;
    /**
     * Dealership (or org) account switcher in the **scrollable top** of the nav: logos, primary/secondary
     * lines, chevron, bordered chip. When non-empty, display derives from selection, not `user`.
     */
    accounts?: SidebarAccountOption[];
    activeAccountId?: string;
    onAccountChange?: (accountId: string) => void;
    /**
     * Second account strip in the **footer** (e.g. signed-in user): optional separate list from
     * `accounts`. Omitted in simple shells that only show a single `user` chip in the footer.
     */
    footerAccounts?: SidebarAccountOption[];
    activeFooterAccountId?: string;
    onFooterAccountChange?: (accountId: string) => void;
    products?: SidebarProductConfig[];
    activeProductId?: string;
    onProductChange?: (productId: string) => void;
    showTopProductSwitcher?: boolean;
    showFooterProductToggle?: boolean;
    mainSections?: SidebarNavSectionConfig[];
    settingsSections?: SidebarNavSectionConfig[];
    /**
     * Optional side-effect hook when a nav row is activated (e.g. clearing local UI state).
     * Rows with `href` already navigate via `<Link>` — do not call `router.push` here.
     */
    onNavItemClick?: (label: string) => void;
    onFold?: () => void;
    onLogOut?: () => void;
    /** Enables collapse/expand behavior. Defaults to false to preserve current behavior. */
    collapsible?: boolean;
    /** Controlled collapsed state. */
    collapsed?: boolean;
    /** Uncontrolled initial collapsed state. */
    defaultCollapsed?: boolean;
    /** Called whenever collapse state toggles. */
    onCollapsedChange?: (collapsed: boolean) => void;
    /** Expanded width in px. */
    expandedWidth?: number;
    /** Collapsed width in px (icon rail). */
    collapsedWidth?: number;
    /** When false, hides the right border so the nav meets the main chrome without a vertical rule. */
    showRightDivider?: boolean;
    /** When false, hides the grooved horizontal pinstripe chrome behind the sidebar. */
    showLineFieldPattern?: boolean;
    /** Replaces the default footer ⋯ glyph on the bottom user chip row. */
    userFooterTrailing?: React.ReactNode;
    /** Renders trailing outside the user chip button so it can be its own control. */
    userFooterTrailingInteractive?: boolean;
    /** Optional panel above the footer user chip (playground dev controls, etc.). */
    userFooterPanel?: React.ReactNode;
}
/** Condensed T-in-frame mark; inline so it always paints (same asset as `toolbox_logo_condensed.svg`, `currentColor` like the wordmark). */
declare function ToolboxCondensedMark({ className }: {
    className?: string;
}): react_jsx_runtime.JSX.Element;
declare function Sidebar({ className, logo, homeHref, user, accounts, activeAccountId, onAccountChange, footerAccounts, activeFooterAccountId, onFooterAccountChange, products, activeProductId, onProductChange, showTopProductSwitcher, showFooterProductToggle, mainSections, settingsSections, onNavItemClick, onFold, onLogOut, collapsible, collapsed, defaultCollapsed, onCollapsedChange, expandedWidth, collapsedWidth, showRightDivider, showLineFieldPattern, userFooterTrailing, userFooterTrailingInteractive, userFooterPanel, }: SidebarProps): react_jsx_runtime.JSX.Element;

export { SIDEBAR_WIDTH, Sidebar, SidebarAccountOption, type SidebarNavItemConfig, type SidebarNavItemTone, type SidebarNavSectionConfig, type SidebarProductConfig, type SidebarProps, type SidebarUserConfig, ToolboxCondensedMark };
