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 {};
