import { RawStaticItem, StaticStorageItem } from '../modules/static';
import { ModuleDesc, ModuleName, ModuleEventMap, ModuleCmdMap, CmdFun } from '../types/protocol';
export declare enum EventEnum {
}
export type EventMap = ModuleEventMap<any>;
export declare enum CmdEnum {
    AddItem = "Static.addItem",
    GetItem = "Static.getItem",
    RemoveItem = "Static.removeItem",
    GetStaticPath = "Static.getStaticPath"
}
type CmdAddType = (m: ModuleName.static, cmd: CmdEnum.AddItem, item: RawStaticItem) => Promise<void>;
type CmdGetType = <K extends keyof StaticStorageItem>(m: ModuleName.static, cmd: CmdEnum.GetItem, filterCondition: (item: Pick<StaticStorageItem, K>) => boolean, filterCount?: number) => Promise<StaticStorageItem[]>;
type CmdGetPathType = (m: ModuleName.static, cmd: CmdEnum.GetStaticPath) => string;
type CmdRemoveType = (m: ModuleName.static, cmd: CmdEnum.RemoveItem, item: RawStaticItem) => void;
export type Command = CmdAddType & CmdGetType & CmdGetPathType & CmdRemoveType;
export interface CmdMap extends ModuleCmdMap<CmdEnum> {
    [CmdEnum.AddItem]: CmdFun<CmdAddType>;
    [CmdEnum.GetItem]: CmdFun<CmdGetType>;
    [CmdEnum.GetStaticPath]: CmdFun<CmdGetPathType>;
    [CmdEnum.RemoveItem]: CmdFun<CmdRemoveType>;
}
type ModuleDependencies = ModuleName.storage | ModuleName.jssdk;
export declare const StaticDesc: ModuleDesc<EventMap, CmdMap, ModuleDependencies>;
export {};
