import { LitElement, CSSResultGroup } from 'lit'; /** * Map of section IDs to their DOM element references. * Keys are free-form section identifiers; when a MenuElement uses the same * string as its `sec` value, the framework wires the menu ref accordingly. */ export type SectionRefs = Record; /** * Map of section IDs to action creator functions. * Actions are dispatched when the section becomes visible (fired once per session). */ export type SectionActions = Record any>; /** * Configuration returned by _getSections() to register section elements * with the framework's section registry. */ export interface SectionConfig { /** Route/page name — must match the NavigationPage.name this page renders under */ pageName: string; /** Map of section IDs to element references */ sections: SectionRefs; /** Optional: section IDs → action creators (fired once on section visibility) */ sectionActions?: SectionActions; } /** * Abstract base class for pages with section-based scroll navigation. * * Subclasses must implement _getSections() to provide section references. */ export declare abstract class PdSectionPage extends LitElement { /** * Base styles providing scroll-margin-top for sections. * Subclasses should include these styles: * * ```typescript * static override styles = [ * PdSectionPage.styles, * css`...own styles...` * ]; * ``` */ static styles: CSSResultGroup; /** * Must be implemented by subclass to provide section configuration. * Called in firstUpdated() to register sections with the framework. * * @returns SectionConfig with page name and section element references */ protected abstract _getSections(): SectionConfig; /** * Dispatches pd-spa:register-sections event to register section elements. * Subclasses can override but should call super.firstUpdated(). */ firstUpdated(): void; } //# sourceMappingURL=PdSectionPage.d.ts.map