import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import type { TTemplateFactory } from './wcctools.helpers.js';
import type { IWccConfig, IWccSection, TElementType } from '../wcctools.interfaces.js';
import * as plugins from '../wcctools.plugins.js';
import './wcc-frame.js';
import './wcc-sidebar.js';
import './wcc-properties.js';
import { type TTheme } from './wcc-properties.js';
import { WccFrame } from './wcc-frame.js';
/**
 * Get filtered and sorted items from a section
 */
export declare const getSectionItems: (section: IWccSection) => Array<[string, any]>;
export declare class WccDashboard extends DeesElement {
    accessor sections: IWccSection[];
    accessor selectedSection: IWccSection | null;
    accessor selectedType: TElementType;
    accessor selectedItemName: string;
    accessor selectedItem: TTemplateFactory | DeesElement | null;
    accessor selectedDemoIndex: number;
    accessor selectedViewport: plugins.deesDomtools.breakpoints.TViewport;
    accessor selectedTheme: TTheme;
    accessor searchQuery: string;
    accessor pinnedItems: Set<string>;
    accessor sidebarWidth: number;
    get isNative(): boolean;
    accessor warning: string | null;
    private frameScrollY;
    private sidebarScrollY;
    private scrollPositionsApplied;
    accessor wccFrame: Promise<WccFrame>;
    constructor(config?: IWccConfig);
    /**
     * Find an item by name across all sections, returns the item and its section
     */
    findItemByName(name: string): {
        item: any;
        section: IWccSection;
    } | null;
    /**
     * Find a section by name (URL-decoded)
     */
    findSectionByName(name: string): IWccSection | null;
    render(): TemplateResult;
    setWarning(warningTextArg: string): void;
    toggleNative(): void;
    firstUpdated(): Promise<void>;
    updated(changedPropertiesArg: Map<string, any>): Promise<void>;
    buildUrl(): void;
    private scrollUpdateTimeout;
    private scrollListenersAttached;
    setupScrollListeners(): Promise<void>;
    private debouncedScrollUpdate;
    private updateUrlWithScrollState;
    applyScrollPositions(): Promise<void>;
}
