import { type JSX, type ReactNode } from 'react';
export type AuditTimelineTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
export type AuditTimelineDensity = 'compact' | 'comfortable';
export type AuditTimelineMetric = {
    id: string;
    label: ReactNode;
    value: ReactNode;
};
export type AuditTimelineEvent<T = unknown> = {
    id: string;
    title: ReactNode;
    time?: ReactNode;
    description?: ReactNode;
    actor?: ReactNode;
    source?: ReactNode;
    meta?: ReactNode;
    metrics?: readonly AuditTimelineMetric[];
    details?: ReactNode;
    tone?: AuditTimelineTone;
    raw?: T;
};
export type AuditTimelineRenderContext = {
    index: number;
    isLast: boolean;
};
export type AuditTimelineProps<T = unknown> = {
    events: readonly AuditTimelineEvent<T>[];
    emptyState?: ReactNode;
    density?: AuditTimelineDensity;
    className?: string;
    renderEvent?: (event: AuditTimelineEvent<T>, context: AuditTimelineRenderContext) => ReactNode;
};
export declare const AuditTimeline: <T>({ events, emptyState, density, className, renderEvent, }: AuditTimelineProps<T>) => JSX.Element | null;
export default AuditTimeline;
//# sourceMappingURL=AuditTimeline.d.ts.map