import { MessageFromType } from './Command';
declare type MessageBase<T extends string, D> = {
    type: T;
    data: D;
};
declare type TextMessage = MessageBase<'text', {
    text: string;
}>;
declare type AtMessage = MessageBase<'at', {
    qq: string;
}>;
declare type EmojiMessage = MessageBase<'emoji', {
    id: string;
}>;
declare type SmallFaceMessage = MessageBase<'sface', {
    id: string;
}>;
declare type FaceMessage = MessageBase<'face', {
    id: string;
}>;
declare type ImageMessage = MessageBase<'image', {
    file: string;
    url: string;
}>;
declare type RecordMessage = MessageBase<'record', {
    file: string;
}>;
declare type BigFaceMessage = MessageBase<'bface', {
    id: string;
    p: string;
}>;
declare type RichMessage = MessageBase<'rich', {
    content: string;
}>;
declare type DiceMessage = MessageBase<'dice', {
    type: string;
}>;
declare type RPSMessage = MessageBase<'rps', {
    type: string;
}>;
export declare type Message = TextMessage | AtMessage | RichMessage | FaceMessage | EmojiMessage | ImageMessage | RecordMessage | BigFaceMessage | SmallFaceMessage | DiceMessage | RPSMessage;
export declare class CQMessageHelper {
    static normalizeMessage(message: Message[] | string): Message[];
    static removeAt(message: Message[]): Message[];
    static isAt(robotQQ: number, messages: Message[]): boolean;
    static toRawMessage(messages: Message[], removeAt?: boolean): string;
    static escapeTextMessage(message: TextMessage): TextMessage;
}
export declare class CQRawMessageHelper {
    static removeAt(str: string): string;
    static isFileMessage(str: string): {
        result: boolean;
        file?: string;
        path?: string;
    };
    static parseCQ(cqStr: any): {
        func: string;
        params: Record<string, any>;
    } | null;
}
export declare class CQMessageFromTypeHelper {
    static getMessageFromType({ message_type, sub_type }: {
        message_type: any;
        sub_type: any;
    }): MessageFromType;
    static isUserMessage(messageFromType: MessageFromType): boolean;
    static isQQGroupMessage(messageFromType: MessageFromType): boolean;
    static isQQGroupNormalMessage(messageFromType: MessageFromType): boolean;
    static isQQGroupAnonymousMessage(messageFromType: MessageFromType): boolean;
}
export {};
