import { PluginManager, CybePlugin } from './pluginManager.js';
import { logger, Logger } from './logger.js';
import { Plugin, MessageContext, Config, NCWebsocket, Structs, type Send, type AllHandlers, FsSizeData } from './types.js';
import { createEventHandlers } from './event.js';
import axios from 'axios';
export type { Plugin, MessageContext, Config, Send, AllHandlers, FsSizeData };
export { CybePlugin, PluginManager, NCWebsocket, Structs };
export declare class NapcatConnector extends NCWebsocket {
    private static instance;
    private messageHandlers;
    private singleMessageHandler;
    constructor(configPath?: string);
    static getInstance(configPath?: string): NapcatConnector;
    onMessage(handler: (e: MessageContext) => void): void;
    removeMessageListener(handler: (e: MessageContext) => void): boolean;
    connect(): Promise<void>;
    disconnect(): void;
    setConfig(config: Config): void;
    getConfig(): Config;
}
export declare class NapcatClient {
    private connector;
    pluginManager: PluginManager;
    logger: Logger;
    events: ReturnType<typeof createEventHandlers>;
    bot_uin: number;
    napcat: NapcatConnector;
    constructor(connector?: NapcatConnector);
    onMessage(handler: (e: MessageContext) => void): void;
    removeMessageListener(handler: (e: MessageContext) => void): boolean;
    connect(): Promise<void>;
    disconnect(): void;
    loadPlugin(plugin: Plugin): void;
    unloadPlugin(pluginName: string): boolean;
    getLoadedPlugins(): string[];
    setConfig(config: Config): void;
    getConfig(): Config;
    sendPrivateMessage(userId: number, content: any): Promise<{
        message_id: number;
    }>;
    sendGroupMessage(groupId: number, content: any): Promise<{
        message_id: number;
    }>;
    deleteMessage(message_id: number): Promise<void>;
    kickMember(group_id: number, user_id: number, reject_add_request?: boolean): Promise<void>;
    banMember(group_id: number, user_id: number, duration?: number): Promise<void>;
    banAllMembers(group_id: number, enable: boolean): Promise<void>;
    setGroupNameEx(group_id: number, name: string): Promise<void>;
    setAdminEx(group_id: number, user_id: number, enable: boolean): Promise<void>;
    setMemberTitle(group_id: number, user_id: number, title: string): Promise<void>;
    isMaster(id: number): Promise<boolean>;
    isAdmin(id: number): Promise<boolean>;
    hasRight(user_id: number): Promise<boolean>;
    aprroveGroup(flag: string): Promise<void>;
    rejectGroup(flag: string): Promise<void>;
    isGroupAdmin(group_id: number, user_id: number): Promise<boolean>;
    isGroupOwner(group_id: number, user_id: number): Promise<boolean>;
    md5(text: string): string;
    randomInt(min: number, max: number): number;
    randomItem<T>(array: T[]): T;
    getGroupAvatarLink(group_id: number, size?: number): string;
    getQQAvatarLink(user_id: number, size?: number): string;
    getImageLink(raw_message: string): string;
    getDirectLink(url: string): Promise<string>;
    getMessageId(raw_message: string): string;
    getMessageAt(raw_message: string): number[];
    getText(raw_message: string): string;
    getQuotedText(raw_message: string): Promise<string>;
    fakeMessage(target_id: number, message: Send['node'][], isGroup: boolean): Promise<{
        message_id: number;
        res_id: string;
    }>;
}
declare const connector: NapcatConnector;
declare const client: NapcatClient;
declare function BootStrap(): Promise<void>;
export { BootStrap, logger, connector, client, axios as http };
