import { IARCProps } from '@adam-sv/arc'; import { RenderableContent } from '@adam-sv/arc'; export interface ICarouselProps extends IARCProps { sections: ISectionInput[]; onDataSetup?: (sections: ISection[]) => void; onClickTrack?: (event: React.MouseEvent) => void; onClickEntry?: (params: IEntryEventParams) => void; domRef?: React.RefObject; } export interface IEntryEventParams { event: React.MouseEvent; entry: IEntry; section: ISection; } export interface ISectionInput { title: string; entries: IEntryInput[]; } export interface ISection extends ISectionInput { index: number; entries: IEntry[]; } export interface IEntryInput { contentGenerator: (entry: IEntry, section: ISection) => RenderableContent; expandedContentGenerator: (entry: IEntry, section: ISection) => RenderableContent; data: T; } export interface IEntry extends IEntryInput { id: string; ref?: React.MutableRefObject; index: number; section: ISection; expand: () => void; collapse: () => void; didClick?: (params: IEntryEventParams) => void; } export interface IExpandEntry { expandedEntry: IEntry | null; setExpandedEntry: (entry: IEntry | null) => void; } export declare const convertSectionInputs: (sectionInputs: ISectionInput[], setExpandedEntry: (entry: IEntry | null) => void, trackRef: React.MutableRefObject) => ISection[];