/**
 * Internal stand-in for @whiskeysockets/baileys so the published bundle does not
 * depend on Baileys. WhatsApp Web is disabled at runtime (see session.ts).
 */
export type AnyMessageContent = Record<string, unknown>;
export type WAPresence = "available" | "composing" | "paused" | "recording" | "unavailable";
export type ConnectionState = {
    connection?: "close" | "open" | "connecting";
    lastDisconnect?: {
        error?: unknown;
    };
    qr?: string;
};
export declare namespace proto {
    type IContextInfo = Record<string, unknown>;
    /** Loose message shape compatible with inbound extract/monitor code paths. */
    type IMessage = Record<string, any>;
    type IMessageKey = {
        id?: string;
        remoteJid?: string;
        participant?: string;
        fromMe?: boolean;
    };
    type IWebMessageInfo = {
        key?: IMessageKey;
        message?: IMessage;
        messageTimestamp?: number | bigint | string;
        pushName?: string;
    };
}
export type WAMessage = proto.IWebMessageInfo;
/** Mirrors Baileys disconnect codes used by login/session flows. */
export declare const DisconnectReason: {
    readonly loggedOut: 401;
    readonly restartRequired: 515;
};
export declare function isJidGroup(jid: string | undefined | null): boolean;
export declare function normalizeMessageContent(message?: proto.IMessage | null): proto.IMessage | undefined;
export declare function getContentType(message: proto.IMessage): string | undefined;
export declare function extractMessageContent(message: proto.IMessage): proto.IMessage;
export declare function downloadMediaMessage(_msg: WAMessage, _type: "buffer", _opts: Record<string, unknown>, _ctx: {
    reuploadRequest?: unknown;
    logger?: unknown;
}): Promise<Buffer>;
