///
import * as WebSocket from 'ws';
import { EventEmitter } from 'events';
import { MessageContext } from './context';
import { Duration } from '../utils';
export declare class MyWebSocket extends WebSocket {
heartBeat: () => void;
pingTimeout: NodeJS.Timeout;
alive: boolean;
sendJson: (data: any) => void;
}
declare type PluginHookHandler = (ctx: MessageContext, namespace: any) => void;
interface Plugin {
create: (options: any, namespace: any) => CallableFunction;
namespace: (options: any) => any;
hooks: Record;
}
declare type handler = (ctx: MessageContext) => any;
declare type afterHandler = (ctx: MessageContext, result: any) => any;
declare type serverOptions = {
port?: number;
deactive_timeout?: number;
};
declare type handleFilters = {
prefixes?: Array;
regexs?: Array;
keywords?: Array;
include_qq?: Array;
include_group?: Array;
exclude_qq?: Array;
exclude_group?: Array;
};
declare type handlerTask = {
handler: handler;
filters: handleFilters;
beforeChecker: handler;
afterHandler: afterHandler;
};
declare type handleOptions = {
where?: string;
filters?: handleFilters;
beforeChecker?: handler;
afterHandler?: afterHandler;
};
declare type events = {
message: {
common: Array;
private: {
common: Array;
friend: Array;
group: Array;
other: Array;
};
group: {
common: Array;
normal: Array;
anonymous: Array;
notice: Array;
};
};
notice: {
common: Array;
private: {
common: Array;
friend_add: Array;
friend_recall: Array;
notify: {
common: Array;
poke: Array;
lucky_king: Array;
honor: Array;
};
};
group: {
common: Array;
group_upload: Array;
group_admin: {
common: Array;
set: Array;
unset: Array;
};
group_decrease: {
common: Array;
leave: Array;
kick: Array;
kick_me: Array;
};
group_increase: {
common: Array;
approve: Array;
invite: Array;
};
group_ban: {
common: Array;
ban: Array;
lift_ban: Array;
};
group_recall: Array;
notify: {
common: Array;
poke: Array;
lucky_king: Array;
honor: Array;
};
};
};
request: {
common: Array;
friend: Array;
group: {
common: Array;
add: Array;
invite: Array;
};
};
meta_event: {
common: Array;
lifecycle: {
common: Array;
connect: Array;
enable: Array;
disable: Array;
};
heartbeat: Array;
};
};
export declare class QQbot {
id: string;
name: string;
logName: string;
connected: boolean;
debug: boolean;
logUnhandledInfo: boolean;
logHeartbeat: boolean;
eventEmitter: EventEmitter;
globalFilters: handleFilters;
loggerOptions: {};
totalSend: number;
totalRecive: number;
lastRecived: number;
plugins: Map;
status: {};
events: events;
initEventsMethod: (bot: QQbot) => void;
defaultHandleOptions: () => handleOptions;
defaultFilters: handleFilters;
beforeHandleCheckers: ({
handler: handler;
} | {});
afterHandlers: ({
handler: afterHandler;
} | {});
server: WebSocket.Server;
info: (...args: any[]) => {};
log: (...args: any[]) => {};
warn: (...args: any[]) => {};
error: (...args: any[]) => {};
constructor({ name, logName, logUnhandledInfo, logHeartbeat, debug, serverOptions, eventAssigns, customGlobalFilters, loggerOptions, beforeHandleCheckers, afterHandlers, initEventsMethod }: {
name: string;
logName?: string;
logUnhandledInfo?: boolean;
logHeartbeat?: boolean;
debug?: boolean;
serverOptions?: serverOptions;
eventAssigns?: object;
customGlobalFilters?: object;
loggerOptions?: object;
beforeHandleCheckers?: object;
afterHandlers?: object;
initEventsMethod?: (bot: QQbot) => any;
});
initServer(options: any): void;
fastAddEventHandler(typeCheckIn: Array, eventType: string, type: string, handler: handler, options: handleOptions): void;
onMessage(type: ('common' | 'private' | 'group'), handler: handler, options?: handleOptions): void;
onNotice(type: ('common' | 'private' | 'group'), handler: handler, options?: handleOptions): void;
onRequest(type: ('common' | 'friend' | 'group'), handler: handler, options?: handleOptions): void;
onMetaEvent(type: ('common' | 'lifecycle' | 'heartbeat'), handler: handler, options?: handleOptions): void;
onLifecycle(lifecycle: ('connect' | 'enable' | 'disable'), handler: handler): void;
defaultEvents(eventAssigns: Object): events;
handleMessage(msg: any, ws: MyWebSocket): Promise;
fakeMessage(event: any): Promise;
fastEventHandler({ taskList, tipString, time, ctx, type }: {
taskList: Array;
tipString: string;
time: Duration;
ctx: MessageContext;
type: string;
}): Promise;
beforeHandleCheck(ctx: MessageContext): Promise;
addBeforeChecker(name: string, handler: handler): void;
removeBeforeChecker(name: string): void;
afterHandle(ctx: MessageContext): Promise;
addAfterHandler(name: string, handler: handler): void;
removeaddAfterHandler(name: string): void;
eventHandlers: {
message: (ctx: MessageContext) => Promise;
notice: (ctx: MessageContext) => Promise;
request: (ctx: MessageContext) => Promise;
meta_event: (ctx: MessageContext) => Promise;
};
loggerize(options: object): void;
format({ color, level }: {
color?: string;
level?: string;
}): string;
get clientCount(): number;
onPrivateMessage(handler: any, ...args: any[]): void;
onPublicMessage(handler: any, option: any): void;
onGroupMessage(handler: any, ...args: any[]): void;
initPlugin(plugin: Plugin, options?: {}): Promise<{
namespace: any;
messageHandler: CallableFunction;
}>;
use(plugin: Plugin): Promise;
start(): void;
}
export {};
//# sourceMappingURL=qqbot.d.ts.map