import { Context, Logger, Session } from 'koishi';
import { Config } from './index';
/**
 * 请求处理模式
 * - accept: 自动接受
 * - reject: 自动拒绝
 * - manual: 人工审核
 * - auto: 条件自动审核
 */
export type Request = 'accept' | 'reject' | 'manual' | 'auto';
/**
 * 请求类型
 * - friend: 好友请求
 * - guild: 群组请求
 * - member: 群成员请求
 */
export type RequestType = 'friend' | 'guild' | 'member';
/**
 * OneBot 用户信息接口
 */
export interface OneBotUserInfo {
    /** 用户 ID */
    user_id: number;
    /** 注册时间（秒级时间戳） */
    regTime?: number;
    /** 注册时间（秒级时间戳） */
    reg_time?: number;
    /** QQ等级 */
    qqLevel?: number;
    /** QQ等级 */
    level?: number;
    /** 是否为 VIP 用户 */
    is_vip?: boolean;
    /** 是否为年费 VIP 用户 */
    is_years_vip?: boolean;
    /** VIP 等级 */
    vip_level?: number;
}
/**
 * OneBot 群组信息接口
 */
export interface OneBotGroupInfo {
    /** 群组 ID */
    group_id: number;
    /** 群组名称 */
    group_name: string;
    /** 群组备注 */
    group_remark?: string;
    /** 成员数量 */
    member_count: number;
    /** 群组最大成员数 */
    max_member_count: number;
}
/**
 * OneBot 请求处理类
 * 处理好友请求、群组请求和群成员请求
 */
export declare class OnebotRequest {
    private ctx;
    private logger;
    private config;
    private pendingRequests;
    private requestNumberMap;
    private nextRequestNumber;
    private activeRequests;
    /**
     * 创建 OneBot 请求处理实例
     * @param ctx - Koishi 上下文
     * @param logger - 日志记录器
     * @param config - 配置项
     */
    constructor(ctx: Context, logger: Logger, config?: Config);
    /**
     * 生成请求的唯一键
     * @param session - Koishi 会话
     * @param type - 请求类型
     * @returns 请求唯一键
     */
    private getRequestKey;
    /**
     * 取消活动中的请求
     * @param requestKey - 请求唯一键
     */
    private cancelActiveRequest;
    /**
     * 处理收到的请求
     * @param session - Koishi 会话
     * @param type - 请求类型
     */
    processRequest(session: Session, type: RequestType): Promise<void>;
    /**
     * 清理请求数据
     * @param requestId - 请求 ID
     */
    private cleanupRequest;
    /**
     * 检查用户条件是否满足自动接受要求
     * @param session - Koishi 会话
     * @param regTimeLimit - 注册时间要求（年数，-1表示不检查）
     * @param levelLimit - QQ等级要求（-1表示不检查）
     * @param vipLevelLimit - VIP等级要求（-1表示不检查）
     * @returns 是否满足条件，如不满足返回原因
     */
    private checkUserConditions;
    /**
     * 判断是否应自动接受请求
     * @param session - Koishi 会话
     * @param type - 请求类型
     * @returns 是否接受，如不接受返回原因
     */
    private shouldAutoAccept;
    /**
     * 处理请求操作（接受或拒绝）
     * @param session - Koishi 会话
     * @param type - 请求类型
     * @param approve - 是否接受请求
     * @param reason - 拒绝原因
     * @param remark - 好友备注（仅适用于好友请求）
     * @returns 处理是否成功
     */
    private processRequestAction;
    /**
     * 设置通知
     * @param session - Koishi 会话
     * @param type - 请求类型
     * @param requestId - 请求 ID
     * @param isManualMode - 是否为手动处理模式
     */
    private setupNotification;
    /**
     * 设置人工审核响应监听
     */
    private setupPromptResponse;
    /**
     * 注册事件监听器，自动处理 OneBot 请求事件
     */
    registerEventListeners(): void;
}
