xverse-components-utils
Version:
xverse components utils
64 lines (63 loc) • 1.91 kB
TypeScript
import { IEnv } from '../device/env';
declare const ConfigKeyType: {
/**
* 水平触发,状态发生变更时,操作系统会持续地提示发生的事件信息,直到进程对该事件进行响应并将设备状态手动清除
*/
readonly LevelTriggered: "LevelTriggered";
/**
* 边缘触发,状态发生变化(例如从未激活到激活),操作系统只会通知进程一次。这意味着进程必须立即对事件进行处理,否则事件信息将会丢失
*/
readonly EdgeTriggered: "EdgeTriggered";
};
type IConfigKeyType = (typeof ConfigKeyType)[keyof typeof ConfigKeyType];
export interface IConfigKeyMeta {
/**
* 属性名key
* @type {string}
*/
key?: string;
/**
* 时间戳
* @type {string}
*/
timestamp: number;
/**
* 类型 水平触发/边缘触发
* @type {IConfigKeyType}
*/
type?: IConfigKeyType;
/**
* 版本号
*/
version: number;
}
type IdEnv = Record<IEnv, string>;
interface IMaximusOptions<T> {
maximusId: string | IdEnv;
/**
* 配置拉取时间间隔,毫秒,默认 6 * 1000,填入 -1 只拉取一次
*/
fetchInterval?: number;
env?: IEnv;
onChange?: (config: T, meta: IConfigKeyMeta[]) => void;
}
export declare function useMaximus<T>(options: IMaximusOptions<T>): void;
interface IMaximusEdgeOptions<T> extends IMaximusOptions<T> {
/**
* Maximus 配置 key
*/
key: keyof T;
/**
* 一个广播信号的存在时间,单位毫秒,默认 1分钟
*/
timeWindow?: number;
/**
* 当改 key 变化时回调
* @param key Maximus 配置 key
* @param value Maximus 配置 value
* @returns
*/
onTriggered: (key: keyof T, value: T[keyof T]) => any;
}
export declare function useEdgeTriggered<T>(options: IMaximusEdgeOptions<T>): void;
export {};