import { EngineRuleState } from "src/utils/type";
import { RequestParamMappingDataType } from "../cTreeDataRelation-setter/type";
import { GroupAnimationType } from "../cBehavior-setter/type";
export declare enum groupCategoryType {
    /**
     * 默认分组
     */
    default = "default",
    /**
     * 万能
     */
    allPurpose = "allPurpose"
}
export declare enum groupClassType {
    /**
     * 主要针对Col这样的槽位
     */
    slot = "slot",
    /**
     * 主要针对按钮，图片等做组管理的模块
     */
    component = "component"
}
export declare enum groupModeType {
    /**
     * 无
     */
    none = "none",
    /**
     * 单选模式
     */
    single = "single",
    /**
     * 多选模式
     */
    multipleChoice = "multipleChoice",
    /**
     * 进度模式
     */
    schedule = "schedule"
}
export declare enum groupNormalType {
    /**
     * 精准匹配
     */
    precision = "precision",
    /**
     * 区间匹配
     */
    section = "section"
}
export interface selectType {
    label: string;
    value: string;
}
interface comGroupListType {
    /**
    * 索引内容，主要用于进度模式下批量选中
    */
    groupIndex: number;
    /**
    * 用于记录后一个角标，1,2,3  1.5也算1 loading
    */
    groupLastIndex?: number;
}
export interface groupBaseListType extends comGroupListType {
    /**
     * 组件唯一标识
     */
    code: string;
    /**
     * 用于初始化时，配置默认选中
     */
    selected: boolean;
}
export interface stateListType extends Pick<groupBaseListType, 'code' | 'selected' | 'groupLastIndex'> {
    name: string;
    state: number;
    isDelete: boolean;
    isIndexDisable: boolean;
}
export interface groupColListType extends comGroupListType {
    stateList: stateListType[];
}
export interface groupType {
    groupId: string;
    groupName: string;
    groupCategory: groupCategoryType;
    groupType: groupClassType;
    groupMode: groupModeType;
    groupList: Array<groupBaseListType | groupColListType>;
}
export type parentGroupType = Pick<groupType, 'groupCategory' | 'groupMode'> & {
    groupIndex: number;
};
export declare enum GroupDataSourceType {
    default = "default",
    custom = "custom"
}
/**
 * 用于给动作里面组修改数据配置
 */
export interface groupSetType {
    groupId: string;
    /**
     * 开始动画
     */
    startAnimationType?: boolean;
    /**
     * 运动方式
     */
    animationType?: GroupAnimationType;
    closeAnimationType?: GroupAnimationType;
    /**
     * 配置索引数据来源
     */
    groupIndexSelectType: GroupDataSourceType;
    /**
     * 默认数据
     */
    groupIndex: number | string;
    /**
     * 来着自定义数据
     */
    groupIndexCustom?: RequestParamMappingDataType;
    /**
    * 配置状态数据来源
    */
    groupStateSelectType?: GroupDataSourceType;
    /**
     * 默认
     * 选择模式，槽位
     * 进度模式，组件和槽位都需要填
     */
    state?: number | EngineRuleState;
    /**
     * 自定义
     */
    stateCustom?: RequestParamMappingDataType;
    /**
     * 配置数据来源
     */
    groupFollowStateSelectType?: GroupDataSourceType;
    /**
     * 默认
     * 进度模式才有，当前步骤之后是显示什么状态，
     * 0
     * 有2异常则显示2，没有则以默认状态代替
     */
    followState?: number;
    /**
     * 跟随自定义
     */
    followStateCustom?: RequestParamMappingDataType;
}
export {};
