import type { ReactNode } from 'react';
import type { WithRemoteItem } from 'jamis-core';
import type { BaseSchema, SchemaApi, SchemaClassName, SchemaCollection, SchemaTokenizeableString } from '../types';
export interface TimelineSchema extends BaseSchema {
    /**
     * 指定为 Timeline 时间轴渲染器
     */
    type: 'timeline';
    /**
     * 节点数据
     */
    items?: Array<TimelineItemSchema>;
    /** 每项的公共样式类 */
    itemClassName?: SchemaClassName;
    /**
     * API 或 数据映射
     */
    source?: SchemaApi | SchemaTokenizeableString;
    /**
     * 文字相对于时间轴展示方向
     */
    mode?: 'left' | 'right' | 'alternate';
    /**
     * 展示方向
     */
    direction?: 'horizontal' | 'vertical';
    /**
     * 节点倒序
     */
    reverse?: boolean;
}
export interface TimelineItemSchema extends Omit<BaseSchema, 'type'>, WithRemoteItem {
    /**
     * 时间点
     */
    time: string;
    timeClassName?: SchemaClassName;
    /**
     * 时间节点标题
     */
    title?: SchemaCollection;
    titleClassName?: SchemaClassName;
    /**
     * 详细内容
     */
    detail?: string;
    detailClassName?: SchemaClassName;
    /**
     * detail折叠时文案
     */
    detailCollapsedText?: string;
    /**
     * detail展开时文案
     */
    detailExpandedText?: string;
    /**
     * 时间点圆圈颜色
     */
    color?: string | 'info' | 'success' | 'warning' | 'danger';
    /**
     * 图标
     */
    icon?: SchemaCollection;
    iconClassName?: SchemaClassName;
    roundClassName?: SchemaClassName;
    lineClassName?: SchemaClassName;
}
export interface TimelineItemProps extends Omit<TimelineItemSchema, 'title' | 'icon'> {
    /**
     * 事件名称
     */
    title?: string | ReactNode;
    /**
     * 图标
     */
    icon?: string | ReactNode;
}
