import { ComputedRenderPropsValue, RenderByFormKeyValueType } from 'lowcode/_utils/conditionRenderService/type';
import { OperateEnumType } from './config';
import { ModalType, RefreshDataType } from 'lowcode/_utils/behaviorService/type';
import { LoadingConfigType, MessageConfigType } from '../cDataSource-setter/type';
import { ActionNodeConfig } from '../cFlowEvent-setter/page/type';
import { RequestParamMappingDataType } from '../cTreeDataRelation-setter/type';
import { GroupDataSourceType, groupSetType } from '../cGroupManage-setter/type';
import { EncryptionType } from 'src/utils/type';
type AlterLogicType = Pick<ComputedRenderPropsValue, 'data' | 'resultData'>;
interface AlterStateObjType {
    id: string;
    alterValue: RenderByFormKeyValueType;
    alterLogic: AlterLogicType;
}
interface EncryptionStruct {
    type: EncryptionType;
}
interface AlterStatePropObjType {
    type: EncryptionType;
    logicalData: AlterStateObjType[];
}
interface RefreshBoxObjType {
    id: string;
    refreshId: string;
    delayTime: number;
}
export interface videoSetType {
    videoComponentKey: string;
    videoGroupId: string;
    /**
     * 划分数据来源类型
     */
    videoDataSourceType: GroupDataSourceType;
    /**
     * 来着自定义数据
     */
    videoGroupIdCustom?: RequestParamMappingDataType;
}
export interface rotateWheelSetType {
    componentKey: string;
    responseParams?: RequestParamMappingDataType;
}
export interface AnimationParams {
    componentKey: string;
    responseParams?: RequestParamMappingDataType;
}
export interface CarouselParams {
    componentKey: string;
    responseParams?: RequestParamMappingDataType;
}
export interface videoDataSourceType extends RefreshDataType {
    groupList: RefreshDataType[];
}
export interface rotateWheelDataSourceType extends RefreshDataType {
    groupList: RefreshDataType[];
}
interface CloseParamsType {
    modelName: string[];
    modelTreeData: ModalType[];
    apiParams?: RequestParamMappingDataType[];
}
interface CloseProPageObjType {
    operateType: OperateEnumType;
    closeParams?: CloseParamsType;
    rotateWheelParams?: rotateWheelSetType;
    animationParams?: AnimationData[];
    carouselParams?: CarouselParams;
    groupParams?: groupSetType;
}
interface OpenPageObjType {
    operateType: OperateEnumType;
    modelName: string[];
    modelTreeData: ModalType[];
    messageConfig: MessageConfigType;
    linkParams?: RequestParamMappingDataType;
    apiParams?: RequestParamMappingDataType[];
    groupParams?: groupSetType;
    videoParams?: videoSetType;
    telegramParams?: TelegramOpenType;
    rotateWheelParams?: rotateWheelSetType;
    closeParams?: CloseParamsType;
    animationParams?: AnimationData[];
    carouselParams?: CarouselParams;
}
type ClosePageObjType = Omit<OpenPageObjType, 'messageConfig'>;
declare enum AwaitBehaViorOption {
    /**
     * 等待时间
     */
    Time = "time",
    /**
     * 快高
     */
    Block = "block"
}
interface AwaitBehaviorType {
    type: AwaitBehaViorOption;
    data: RequestParamMappingDataType;
    loadingConfig: LoadingConfigType;
    outputConfig: {
        openType: boolean;
        stateKey: RequestParamMappingDataType;
    };
}
declare enum StorageDataBType {
    /**
     * 本地存储
     */
    Local = "local",
    /**
     * 线上存储
     */
    OnLine = "onLine"
}
declare enum StorageLocalType {
    /**
     * 永久
     */
    LocalStorage = "localStorage",
    /**
     * 一次性
     */
    SessionStorage = "sessionStorage",
    /**
     * 人机校验
     */
    GoogleCaptcha = "googleCaptcha"
}
declare enum GroupAnimationType {
    /**
     * 开始动画
     */
    StartAnimation = "StartAnimation",
    /**
     * 停止动画
     */
    StopAnimation = "StopAnimation",
    /**
     * 变速
     */
    variableSpeed = "variableSpeed",
    /**
     * 匀速
     */
    constantSpeed = "constantSpeed",
    /**
     * 立刻结束
     */
    immediatelyOver = "immediatelyOver",
    /**
     * 缓慢结束
     */
    slowOver = "slowOver"
}
interface SaveKeyValueType {
    key: RequestParamMappingDataType;
    value: RequestParamMappingDataType;
}
interface LocalSaveDataType extends SaveKeyValueType {
    type: StorageLocalType;
}
interface StorageDataBehaviorType {
    type: StorageDataBType;
    localConfig: LocalSaveDataType;
    /**
     * 后期再补充这个线上内容
     */
    onLineConfig?: any;
}
declare const WalletChangeEvent: {
    type: string;
    key: string;
    localStorageKey: string;
};
declare enum WalletEnvType {
    wallet = "wallet",
    noWallet = "noWallet"
}
interface ChangeWalletEnvType {
    type: WalletEnvType;
}
interface CBehaviorPropsType {
    value: ActionNodeConfig;
    onChange: (value: ActionNodeConfig) => void;
}
declare enum TelegramType {
    share = "share",
    link = "link",
    touch = "touch"
}
declare enum TouchSelectType {
    light = "light",
    medium = "medium",
    heavy = "heavy",
    rigid = "rigid",
    soft = "soft"
}
declare enum OperationType {
    start = "start",
    stop = "stop"
}
interface TelegramData {
    linkUrl?: RequestParamMappingDataType;
    shareData?: {
        url: RequestParamMappingDataType;
        startApp: RequestParamMappingDataType;
        content: RequestParamMappingDataType;
    };
    touchType?: TouchSelectType;
}
interface TelegramOpenType {
    type: TelegramType;
    data: TelegramData;
}
interface AnimationConfig extends AnimationData {
    type: OperationType;
}
declare enum AnimationSpeed {
    faster = "faster",
    fast = "fast",
    slow = "slow",
    slower = "slower"
}
declare enum AttentionSeekers {
    bounce = "bounce",
    flash = "flash",
    headShake = "headShake",
    heartBeat = "heartBeat",
    jello = "jello",
    pulse = "pulse",
    rubberBand = "rubberBand",
    shake = "shake",
    shakeUniformX = "shakeUniformX",
    shakeUniformY = "shakeUniformY",
    shakeX = "shakeX",
    shakeY = "shakeY",
    swing = "swing",
    tada = "tada",
    wobble = "wobble"
}
declare const ANIMATION_TYPE: Record<string, Record<string, string>>;
type AnimationType = typeof ANIMATION_TYPE;
type AnimationCategory = keyof AnimationType;
type AnimationKey<T extends AnimationCategory> = keyof AnimationType[T];
interface AnimationData<T extends AnimationCategory = AnimationCategory> {
    componentKey: string;
    animationType?: AnimationKey<T>;
    repeatTimes?: number;
    speed?: AnimationSpeed;
}
export { CBehaviorPropsType, AlterStateObjType, AlterStatePropObjType, RefreshBoxObjType, AlterLogicType, OpenPageObjType, ClosePageObjType, AwaitBehaViorOption, AwaitBehaviorType, TelegramOpenType, TelegramType, TelegramData, OperationType, CloseProPageObjType, CloseParamsType, TouchSelectType, StorageDataBType, StorageLocalType, StorageDataBehaviorType, EncryptionStruct, GroupAnimationType, ANIMATION_TYPE, AnimationData, AnimationConfig, AttentionSeekers, AnimationSpeed, ChangeWalletEnvType, WalletEnvType, WalletChangeEvent };
