import type { ReactNode } from 'react';
/** Props for the ImageSlider component. */
export interface ImageSliderProps {
    /** Array of image URLs to display */
    images: string[];
    /** Auto-play interval in milliseconds (0 to disable) */
    autoPlayInterval?: number;
    /** Additional className for the root container */
    className?: string;
    /** Whether to hide the built-in slider indicators */
    hideIndicators?: boolean;
    /** Optional callback fired whenever the active slide changes */
    onSlideChange?: (index: number) => void;
    /** Controlled active index (makes component controlled) */
    activeIndex?: number;
    /** Callback for manual slide navigation in controlled mode */
    onNavigate?: (index: number) => void;
}
/**
 * Props for the MainLayout component.
 * Two-panel auth page: left panel (marketing/slider), right panel (auth content).
 */
export interface MainLayoutProps {
    /** Array of image URLs for the slider */
    sliderImages?: string[];
    /** Auto-play interval for slider in milliseconds (0 to disable) */
    sliderAutoPlayInterval?: number;
    /** Call-to-action text displayed above the image card. Set to null to hide */
    ctaText?: ReactNode | null;
    /** Per-slide title/CTA (overrides ctaText when provided; uses active slide index) */
    sliderTitles?: (ReactNode | string)[] | undefined;
    /** Additional className for the root container */
    className?: string;
    /** Additional className for the marketing panel (left side) */
    marketingClassName?: string;
    /** Additional className for the content panel (right side) */
    contentClassName?: string;
    /** Main authentication content (typically AuthLayout.Root with slots) */
    children: ReactNode;
}
/** Props for the MarketingPanel component (left side). */
export interface MarketingPanelProps {
    /** Array of image URLs for the slider */
    sliderImages: string[];
    /** Auto-play interval for slider in milliseconds */
    sliderAutoPlayInterval: number;
    /** Active slide index (controlled) */
    activeSlideIndex: number;
    /** Callback when slide changes */
    onSlideChange: (index: number) => void;
    /** Call-to-action text */
    ctaText?: ReactNode | null;
    /** Per-slide title/CTA (overrides ctaText when provided) */
    sliderTitles?: (ReactNode | string)[] | undefined;
    /** Additional className */
    className?: string;
}
