import { LitElement } from 'lit'; export interface ScrollToButtonProps { label?: string; showLabel?: boolean; icon?: boolean; scrollThreshold?: number; target?: 'top' | 'bottom' | string | HTMLElement; direction?: 'up' | 'down' | 'auto'; smoothScroll?: boolean; visible?: boolean; size?: 'x-sm' | 'sm' | 'md' | 'lg' | 'xl'; shape?: 'capsule' | 'rounded' | 'circle' | 'square' | 'rounded-square' | ''; } /** * @element ag-scroll-to-button * @slot icon - Optional slot for custom icon projection * * @csspart ag-scrollto-button - The button wrapper element * @csspart ag-button - The inner ag-button element (exported from nested component) * @csspart ag-button-content - The flex container holding icon and label * @csspart ag-icon-wrapper - The wrapper around the icon slot (for flex ordering and positioning) * @csspart ag-label - The label text span element * * @example Icon and Label Positioning * You can control icon placement relative to the label using CSS flex properties on the ag-button-content part: * * ```css * // Icon on the right side * ag-scroll-to-button::part(ag-button-content) { * flex-direction: row-reverse; * } * * // Icon above label (vertical) * ag-scroll-to-button::part(ag-button-content) { * flex-direction: column; * } * * // Icon below label * ag-scroll-to-button::part(ag-button-content) { * flex-direction: column-reverse; * } * * // Customize spacing between icon and label * ag-scroll-to-button::part(ag-button-content) { * gap: 1rem; * } * * // Style the icon wrapper independently * ag-scroll-to-button::part(ag-icon-wrapper) { * background: white; * border-radius: 50%; * padding: 0.5rem; * } * * // Style the label independently * ag-scroll-to-button::part(ag-label) { * font-weight: bold; * text-transform: uppercase; * } * ``` */ export declare class ScrollToButton extends LitElement implements ScrollToButtonProps { static styles: import('lit').CSSResult; label: string; showLabel: boolean; icon: boolean; scrollThreshold: number; target: 'top' | 'bottom' | string; direction: 'up' | 'down' | 'auto'; smoothScroll: boolean; visible: boolean; size: 'x-sm' | 'sm' | 'md' | 'lg' | 'xl'; shape: 'capsule' | 'rounded' | 'circle' | 'square' | 'rounded-square' | ''; private _targetElement; constructor(); private _handleScroll; private _getScrollBehavior; private _getScrollTarget; private _getDirection; private _scrollToTarget; setTargetElement(element: HTMLElement | null): void; connectedCallback(): void; disconnectedCallback(): void; private _renderDefaultIcon; render(): import('lit').TemplateResult<1>; } //# sourceMappingURL=_ScrollToButton.d.ts.map