import * as _angular_core from '@angular/core'; import { TemplateRef } from '@angular/core'; /** Image-driven marquee entry. */ interface WrMarqueeImage { readonly src: string; readonly alt?: string; readonly href?: string; readonly title?: string; readonly width?: number; readonly height?: number; readonly srcSet?: string; readonly sizes?: string; } /** Template-driven marquee entry — `node` is rendered via `*ngTemplateOutlet`. */ interface WrMarqueeNode { readonly node: TemplateRef; readonly href?: string; readonly ariaLabel?: string; readonly title?: string; } type WrMarqueeItem = WrMarqueeImage | WrMarqueeNode; declare function isNode(item: WrMarqueeItem): item is WrMarqueeNode; /** * Endless horizontal marquee. Auto-duplicates the items list until it * covers the container width, then animates the track with a smooth * rAF-driven scroll. Optional edge fades, scale-on-hover, and pause / * variable-speed hover behaviour. * * @example * ```html * * ``` * * @see https://www.reactbits.dev/animations/logo-loop */ declare class WrMarquee { /** Items to display. Each entry is either an image source or a TemplateRef node. */ readonly items: _angular_core.InputSignal; /** Scroll speed in pixels per second. Negative reverses direction. @default 120 */ readonly speed: _angular_core.InputSignalWithTransform; /** Track direction. @default 'left' */ readonly direction: _angular_core.InputSignal<"left" | "right">; /** Item height in pixels. @default 28 */ readonly itemHeight: _angular_core.InputSignalWithTransform; /** Gap between items in pixels. @default 32 */ readonly gap: _angular_core.InputSignalWithTransform; /** Pause the loop on hover. @default false */ readonly pauseOnHover: _angular_core.InputSignalWithTransform; /** Custom speed (px/s) when hovered. Overrides `pauseOnHover`. */ readonly hoverSpeed: _angular_core.InputSignalWithTransform; /** Apply edge fade-out gradients. @default false */ readonly fadeOut: _angular_core.InputSignalWithTransform; /** CSS colour for the fade-out gradient. Defaults to the page background. */ readonly fadeOutColor: _angular_core.InputSignal; /** Scale individual items up on hover. @default false */ readonly scaleOnHover: _angular_core.InputSignalWithTransform; /** Accessible label for the carousel region. @default 'Marquee' */ readonly ariaLabel: _angular_core.InputSignal; private readonly trackEl; private readonly host; private readonly destroyRef; private readonly isBrowser; protected readonly seqWidth: _angular_core.WritableSignal; protected readonly copyCount: _angular_core.WritableSignal; protected readonly isHovered: _angular_core.WritableSignal; protected readonly copyIndices: _angular_core.Signal; /** Resolved hover speed: `hoverSpeed` overrides, else 0 when `pauseOnHover`, else live. */ private readonly effectiveHoverSpeed; /** Target velocity in px/s, sign baked in. */ private readonly targetVelocity; constructor(); protected onEnter(): void; protected onLeave(): void; protected isNodeItem: typeof isNode; /** Read first sequence width + decide how many copies cover the viewport. */ private measure; private watchResize; private watchImageLoads; private startLoop; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { WrMarquee }; export type { WrMarqueeImage, WrMarqueeItem, WrMarqueeNode };