import { default as React, ReactNode } from 'react'; import { Theme } from '@principal-ade/industry-theme'; export interface SnapCarouselRef { /** Scroll to a specific panel by index */ scrollToPanel: (index: number) => void; /** Get the current panel index */ getCurrentPanel: () => number; } export interface SnapCarouselProps { /** Array of panel content to display in the carousel */ panels: ReactNode[]; /** CSS class for the carousel container */ className?: string; /** Additional styles to apply to the container */ style?: React.CSSProperties; /** Theme object for customizing colors */ theme: Theme; /** Minimum width for each panel (default: 350px). For 2-panel layouts, the threshold for switching to 50% width is 2x this value. */ minPanelWidth?: number; /** Ideal width for each panel as a fraction of container width (default: 0.333 for 1/3 of container) */ idealPanelWidth?: number; /** Whether to show a 1px separator between panels (default: false) */ showSeparator?: boolean; /** Callback when a panel comes into view */ onPanelChange?: (index: number) => void; /** Prevent keyboard keys (space, arrows, page up/down) from scrolling the carousel. Useful when panels contain interactive input components like terminals or text editors. (default: true) */ preventKeyboardScroll?: boolean; /** Disable touch/swipe scrolling, only allow programmatic navigation via ref (default: false) */ disableSwipe?: boolean; } /** * SnapCarousel - A horizontally scrolling carousel with snap points * * Responsive behavior: * - 1 panel: 100% width of container * - 2 panels: 100% width by default, switches to 50% when container width > 2x minPanelWidth (default: 700px) * - 3+ panels: Uses max(minPanelWidth, idealPanelWidth%) of container width */ export declare const SnapCarousel: React.ForwardRefExoticComponent>; //# sourceMappingURL=SnapCarousel.d.ts.map