import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{LyraOrientation}from'../../../internal/shared-unions.js';export interface LyraScrollerEventMap{'lr-scroll':CustomEvent<{scrollStart:boolean;scrollEnd:boolean;scrollLeft:number;scrollTop:number;}>;} /** * `` — a responsive overflow surface with optional previous * and next controls. Content remains in the default slot, so cards, tabs, and * any consumer-owned interactive elements retain their own semantics. * * @customElement lr-scroller * @slot - Scrollable content. * @event lr-scroll - `detail: { scrollStart: boolean; scrollEnd: boolean; scrollLeft: number; * scrollTop: number }` reports the scroll position and available edges. Scroll-driven emissions * are coalesced through one `requestAnimationFrame` tick, so a fling that fires dozens of native * `scroll` events produces at most one of these per frame. * @csspart base - The overall scroller layout. * @csspart viewport - The native scroll container. * @csspart content - The slotted content wrapper. * @csspart start-shadow - Logical-start overflow cue. * @csspart end-shadow - Logical-end overflow cue. * @csspart previous - The previous/start control. * @csspart next - The next/end control. * @csspart control - Shared part on both `previous` and `next`. * @csspart previous-glyph - The chevron glyph inside `previous`, mirrored under RTL. * @csspart next-glyph - The chevron glyph inside `next`, mirrored under RTL. * @cssprop [--lr-scroller-control-size=var(--lr-size-2rem)] - Control size. * @cssprop [--lr-scroller-min-block-size=var(--lr-size-10rem)] - Minimum vertical scroller size. * @cssprop [--shadow-color=var(--lr-color-surface)] - Base color of each edge shadow. * @cssprop [--shadow-size=var(--lr-size-2rem)] - Inline/block extent of each edge shadow. * @cssprop [--lr-scroller-shadow-color=var(--shadow-color)] - Lyra-prefixed shadow-color alias. * @cssprop [--lr-scroller-shadow-size=var(--shadow-size)] - Lyra-prefixed shadow-size alias. * @cssprop [--lr-scroller-hover-outline-width=var(--lr-border-width-thin)] - Outline width of the * mouse-hover preview on `[part="viewport"]`. * @cssprop [--lr-scroller-hover-outline-style=solid] - Outline style of the mouse-hover preview on * `[part="viewport"]`. * @cssprop [--lr-scroller-hover-outline-color=var(--lr-color-border)] - Outline color of the * mouse-hover preview on `[part="viewport"]`. Set to `transparent` to opt out of the hover * treatment entirely. * @cssprop [--lr-scroller-hover-outline-offset=var(--lr-focus-ring-offset)] - Offset of the * mouse-hover preview on `[part="viewport"]`. * @status stable * @since 4.0.0 */ export declare class LyraScroller extends LyraElement{static styles:import("lit").CSSResultGroup[];orientation:LyraOrientation;controls:boolean; /** Hides the native scrollbar while preserving scrolling. */ withoutScrollbar:boolean; /** Removes both visual edge cues while leaving native scrolling untouched. */ withoutShadow:boolean;scrollStep:number;label:string;private canScrollStart;private canScrollEnd;private measured;private viewport?;private content?;private resizeObserver?;private resizeObserverDocument?;private ownerRealmGeneration;connectedCallback():void;firstUpdated(changed:PropertyValues):void;disconnectedCallback():void;adoptedCallback():void;private armResizeObserver;private resetOwnerRealmWork;private scheduleEdgeUpdate;protected updated(changed:PropertyValues):void;private edgeDetail;private updateEdges;private syncEdges;private scrollFrame?;private scrollFrameWindow?;private cancelScrollFrame;private onScroll;private onSlotChange; /** `scrollStep` normalized to a finite, non-negative override amount before * `scrollByDirection()`'s `> 0` gate below -- only a positive value overrides the * viewport-percentage-based default there; zero, negative, or non-finite already falls through * to that default via the comparison, so this just makes the normalization explicit instead of * relying on incidental NaN/negative comparison semantics. */ private get safeScrollStep();private scrollByDirection;private scrollToEdge;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-scroller':LyraScroller;}}