import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import { WccDashboard } from './wcc-dashboard.js';
import type { TTemplateFactory } from './wcctools.helpers.js';
import type { IWccSection, TElementType } from '../wcctools.interfaces.js';
export declare class WccSidebar extends DeesElement {
    accessor selectedItem: DeesElement | TTemplateFactory;
    accessor selectedType: TElementType;
    accessor dashboardRef: WccDashboard;
    accessor isNative: boolean;
    accessor expandedElements: Set<string>;
    accessor collapsedSections: Set<string>;
    accessor searchQuery: string;
    accessor pinnedItems: Set<string>;
    accessor sidebarWidth: number;
    accessor isResizing: boolean;
    accessor isHidden: boolean;
    accessor isMenuScrolled: boolean;
    private sectionsInitialized;
    /**
     * Returns the scrollable container element (.menu) for external scroll management
     */
    get scrollableContainer(): HTMLElement | null;
    render(): TemplateResult;
    /**
     * Initialize collapsed sections from section config
     */
    private initCollapsedSections;
    private getPinKey;
    private isPinned;
    private togglePin;
    private showContextMenu;
    private showGroupContextMenu;
    /**
     * Render the PINNED section (only if there are pinned items)
     */
    private renderPinnedSection;
    /**
     * Render all sections
     */
    private renderSections;
    /**
     * Render items for a section
     */
    private renderSectionItems;
    /**
     * Render a single element item (used by renderSectionItems)
     */
    private renderElementItem;
    private toggleSectionCollapsed;
    private toggleExpanded;
    private handleSearchInput;
    private clearSearch;
    private handleMenuScroll;
    private matchesSearch;
    private isGroupFilterMatch;
    private getElementGroups;
    private scrollToGroup;
    private highlightMatch;
    protected updated(changedProperties: Map<string, unknown>): void;
    private startResize;
    selectItem(typeArg: TElementType, itemNameArg: string, itemArg: TTemplateFactory | DeesElement, demoIndex?: number, section?: IWccSection): void;
}
