import { FoundationElement } from '@microsoft/fast-foundation'; export declare const SECTION_NAVIGATOR_EVENTS: { readonly setState: "section-navigator-set-state"; readonly setStates: "section-navigator-set-states"; readonly clearState: "section-navigator-clear-state"; readonly clearAllStates: "section-navigator-clear-all-states"; }; export type SectionItemStateName = 'active' | 'inactive' | 'pending' | 'disabled' | 'error' | 'completed'; export type SectionItemStateIcon = { name: string; variant: 'solid' | 'regular' | 'light' | 'thin'; }; export type SectionItemState = { name: SectionItemStateName; tooltip?: string; }; export interface SectionItem { name: string; label: string; states?: SectionItemStateName[]; } export interface SetStateEventDetail { sectionName: string; stateName: SectionItemStateName; } export interface SetStatesEventDetail { sectionName: string; stateNames: SectionItemStateName[]; } export interface ClearStateEventDetail { sectionName: string; stateName: SectionItemStateName; } export interface ClearAllStatesEventDetail { sectionName?: string; } /** * Section Navigator Component * * A component that provides navigation between different sections with support for state management. * Each section can have multiple states that are displayed as icons next to the section label. * * @tagname %%prefix%%-section-navigator * * @attr sections - Array of section items to display * @attr scroll-behavior - Scroll behavior: 'view' or 'top' (default: 'top') * @attr state-tooltips - Custom tooltips for state icons * @attr state-icons - Custom icons for state types * @attr disable-auto-scroll-detection - Disable automatic active section detection during scrolling (default: false) * When enabled, automatically updates active section based on scroll position. * User clicks are prioritized - clicked section remains active until scroll ends. * * @listens set-state - Adds a single state to a section * Detail: { sectionName: string, stateName: SectionItemStateName } * * @listens set-states - Adds multiple states to a section * Detail: { sectionName: string, stateNames: SectionItemStateName[] } * * @listens clear-state - Removes a specific state from a section * Detail: { sectionName: string, stateName: SectionItemStateName } * * @listens clear-all-states - Clears all states from a section or all sections * Detail: { sectionName?: string } - If sectionName not provided, clears all sections * * @fires section-navigator-set-state - Fired when a child state event is re-dispatched with an inferred section name * @fires section-navigator-set-states - Fired when a child state event is re-dispatched with an inferred section name * @fires section-navigator-clear-state - Fired when a child state event is re-dispatched with an inferred section name * @fires section-navigator-clear-all-states - Fired when a child state event is re-dispatched with an inferred section name * * @slot {sectionName} - Content for each section (slot name matches section name) * * @example * ```html * * *
Section 1 content
*
Section 2 content
*
* * * *
Section 1 content
*
Section 2 content
*
* ``` */ export declare class SectionNavigator extends FoundationElement { sections: SectionItem[]; scrollBehavior: 'view' | 'top'; stateTooltips: Record; stateIcons: Record; disableAutoScrollDetection: boolean; private handleSetStateRef?; private handleSetStatesRef?; private handleClearStateRef?; private handleClearAllStatesRef?; private handleGenericStateEventRef?; private userClickedSection; private scrollEndHandler?; private isUserScrolling; private scrollCheckHandler?; private scrollDebounceTimeout?; private static readonly SCROLL_END_TIMEOUT; private static readonly SCROLL_DEBOUNCE_TIMEOUT; sectionsChanged(): void; disableAutoScrollDetectionChanged(): void; scrollBehaviorChanged(): void; sectionItems: SectionItem[]; activeSection: string; sectionNavigatorContainer: HTMLElement; sectionContent: HTMLElement; private spacerElement?; connectedCallback(): void; private setSectionItems; private setActiveSection; handleSectionClick(sectionName: string): void; private updateSpacer; private scrollToSection; private updateScrollDetection; private setupScrollDetection; private updateActiveSectionBasedOnScrollPosition; private setupScrollEndDetection; private cleanupScrollEndDetection; private cleanupScrollDetection; private setupStateEventListeners; private updateSectionStates; private addState; private addStates; private clearState; private clearAllStates; private clearAllStatesInAllSections; getStateTooltip(stateName: SectionItemStateName): string; getSectionStateClass(section: SectionItem): string; getStateIcon(stateName: SectionItemStateName): SectionItemStateIcon; disconnectedCallback(): void; } export declare const foundationSectionNavigatorShadowOptions: ShadowRootInit; export declare const defaultSectionNavigatorConfig: {}; /** * The Foundation SectionNavigator * * @public * @remarks * HTML Element: \ */ export declare const foundationSectionNavigator: (overrideDefinition?: import("@microsoft/fast-foundation").OverrideFoundationElementDefinition<{ baseName: string; template: import("@microsoft/fast-element").ViewTemplate; styles: import("@microsoft/fast-element").ElementStyles; shadowOptions: ShadowRootInit; }>) => import("@microsoft/fast-foundation").FoundationElementRegistry<{ baseName: string; template: import("@microsoft/fast-element").ViewTemplate; styles: import("@microsoft/fast-element").ElementStyles; shadowOptions: ShadowRootInit; }, typeof SectionNavigator>; //# sourceMappingURL=section-navigator.d.ts.map