/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { Collection } from "@discordjs/collection";
import { ICollectorOptions, ICommandOptions, ICtx, ICtxOptions, ICtxSelf, IInteractiveMessageContent, IMe, IMessageInfo } from "../Common/Types";
import makeWASocket, { AnyMediaMessageContent, AnyMessageContent, DownloadableMessage, MediaDownloadOptions, MediaGenerationOptions, MediaType, MessageGenerationOptionsFromContent, MiscMessageGenerationOptions, proto } from "@whiskeysockets/baileys";
import { WAProto } from "@whiskeysockets/baileys";
import { MessageCollector } from "./Collector/MessageCollector";
import { GroupData } from "./Group/GroupData";
import { Group } from "./Group/Group";
export declare class Ctx implements ICtx {
    _used: {
        prefix?: Array<string> | string;
        command?: string;
        upsert?: any;
        hears?: any;
        poll?: any;
        pollVote?: any;
        reactions?: any;
    };
    _args: string[];
    _self: ICtxSelf;
    _client: ReturnType<typeof makeWASocket>;
    _msg: IMessageInfo;
    _sender: {
        jid: string | null | undefined;
        decodedJid: string | null | undefined;
        pushName: string | null | undefined;
    };
    _config: {
        prefix: string | RegExp | string[];
        cmd: Collection<number | ICommandOptions, any> | undefined;
    };
    constructor(options: ICtxOptions);
    get id(): string | null | undefined;
    get used(): {
        prefix?: string | string[] | undefined;
        command?: string | undefined;
        upsert?: any;
        hears?: any;
        poll?: any;
        pollVote?: any;
        reactions?: any;
    };
    get bot(): ICtxSelf;
    get me(): IMe;
    get core(): ReturnType<typeof makeWASocket>;
    get decodedId(): string | null | undefined;
    get args(): Array<string>;
    get msg(): IMessageInfo & {
        media: {
            toBuffer: () => Promise<Buffer | import('stream').Transform | null>;
            toStream: () => Promise<Buffer | import('stream').Transform | null>;
        };
    };
    get sender(): {
        jid: string | null | undefined;
        decodedJid: string | null | undefined;
        pushName: string | null | undefined;
    };
    sendMessage(jid: string, content: AnyMessageContent, options?: MiscMessageGenerationOptions): Promise<undefined | WAProto.WebMessageInfo>;
    reply(content: AnyMessageContent | string, options?: MiscMessageGenerationOptions): Promise<undefined | WAProto.WebMessageInfo>;
    replyWithJid(jid: string, content: AnyMessageContent, options?: MiscMessageGenerationOptions): Promise<undefined | WAProto.WebMessageInfo>;
    react(jid: string, emoji: string, key?: WAProto.IMessageKey): Promise<undefined | WAProto.WebMessageInfo>;
    MessageCollector(args?: ICollectorOptions): MessageCollector;
    awaitMessages(args?: ICollectorOptions): Promise<unknown>;
    getMessageType(): keyof WAProto.IMessage | undefined;
    getMediaMessage(msg: IMessageInfo, type: 'buffer' | 'stream'): Promise<Buffer | import('stream').Transform | null>;
    read(): void;
    simulateTyping(): void;
    deleteMessage(key: WAProto.IMessageKey): Promise<undefined | WAProto.WebMessageInfo>;
    simulateRecording(): void;
    editMessage(key: WAProto.IMessageKey, newText: string): Promise<proto.WebMessageInfo | undefined>;
    sendPoll(jid: string, args: {
        name: string;
        values: Array<string>;
        singleSelect: boolean;
        selectableCount?: boolean;
    }): Promise<undefined | WAProto.WebMessageInfo>;
    getMentioned(): string[] | null | undefined;
    getDevice(id: string | undefined): "android" | "unknown" | "web" | "ios" | "desktop";
    isGroup(): boolean | undefined;
    block(jid?: string): Promise<void>;
    unblock(jid?: string): Promise<void>;
    get groups(): Group;
    group(jid?: string): GroupData;
    get quoted(): {
        senderJid: string | null | undefined;
        decodedSenderJid: string;
        media: {
            toBuffer: () => Promise<Buffer | null>;
            toStream: () => Promise<import("stream").Transform | null>;
        };
        conversation?: string | null | undefined;
        senderKeyDistributionMessage?: proto.Message.ISenderKeyDistributionMessage | null | undefined;
        imageMessage?: proto.Message.IImageMessage | null | undefined;
        contactMessage?: proto.Message.IContactMessage | null | undefined;
        locationMessage?: proto.Message.ILocationMessage | null | undefined;
        extendedTextMessage?: proto.Message.IExtendedTextMessage | null | undefined;
        documentMessage?: proto.Message.IDocumentMessage | null | undefined;
        audioMessage?: proto.Message.IAudioMessage | null | undefined;
        videoMessage?: proto.Message.IVideoMessage | null | undefined;
        call?: proto.Message.ICall | null | undefined;
        chat?: proto.Message.IChat | null | undefined;
        protocolMessage?: proto.Message.IProtocolMessage | null | undefined;
        contactsArrayMessage?: proto.Message.IContactsArrayMessage | null | undefined;
        highlyStructuredMessage?: proto.Message.IHighlyStructuredMessage | null | undefined;
        fastRatchetKeySenderKeyDistributionMessage?: proto.Message.ISenderKeyDistributionMessage | null | undefined;
        sendPaymentMessage?: proto.Message.ISendPaymentMessage | null | undefined;
        liveLocationMessage?: proto.Message.ILiveLocationMessage | null | undefined;
        requestPaymentMessage?: proto.Message.IRequestPaymentMessage | null | undefined;
        declinePaymentRequestMessage?: proto.Message.IDeclinePaymentRequestMessage | null | undefined;
        cancelPaymentRequestMessage?: proto.Message.ICancelPaymentRequestMessage | null | undefined;
        templateMessage?: proto.Message.ITemplateMessage | null | undefined;
        stickerMessage?: proto.Message.IStickerMessage | null | undefined;
        groupInviteMessage?: proto.Message.IGroupInviteMessage | null | undefined;
        templateButtonReplyMessage?: proto.Message.ITemplateButtonReplyMessage | null | undefined;
        productMessage?: proto.Message.IProductMessage | null | undefined;
        deviceSentMessage?: proto.Message.IDeviceSentMessage | null | undefined;
        messageContextInfo?: proto.IMessageContextInfo | null | undefined;
        listMessage?: proto.Message.IListMessage | null | undefined;
        viewOnceMessage?: proto.Message.IFutureProofMessage | null | undefined;
        orderMessage?: proto.Message.IOrderMessage | null | undefined;
        listResponseMessage?: proto.Message.IListResponseMessage | null | undefined;
        ephemeralMessage?: proto.Message.IFutureProofMessage | null | undefined;
        invoiceMessage?: proto.Message.IInvoiceMessage | null | undefined;
        buttonsMessage?: proto.Message.IButtonsMessage | null | undefined;
        buttonsResponseMessage?: proto.Message.IButtonsResponseMessage | null | undefined;
        paymentInviteMessage?: proto.Message.IPaymentInviteMessage | null | undefined;
        interactiveMessage?: proto.Message.IInteractiveMessage | null | undefined;
        reactionMessage?: proto.Message.IReactionMessage | null | undefined;
        stickerSyncRmrMessage?: proto.Message.IStickerSyncRMRMessage | null | undefined;
        interactiveResponseMessage?: proto.Message.IInteractiveResponseMessage | null | undefined;
        pollCreationMessage?: proto.Message.IPollCreationMessage | null | undefined;
        pollUpdateMessage?: proto.Message.IPollUpdateMessage | null | undefined;
        keepInChatMessage?: proto.Message.IKeepInChatMessage | null | undefined;
        documentWithCaptionMessage?: proto.Message.IFutureProofMessage | null | undefined;
        requestPhoneNumberMessage?: proto.Message.IRequestPhoneNumberMessage | null | undefined;
        viewOnceMessageV2?: proto.Message.IFutureProofMessage | null | undefined;
        encReactionMessage?: proto.Message.IEncReactionMessage | null | undefined;
        editedMessage?: proto.Message.IFutureProofMessage | null | undefined;
        viewOnceMessageV2Extension?: proto.Message.IFutureProofMessage | null | undefined;
        pollCreationMessageV2?: proto.Message.IPollCreationMessage | null | undefined;
        scheduledCallCreationMessage?: proto.Message.IScheduledCallCreationMessage | null | undefined;
        groupMentionedMessage?: proto.Message.IFutureProofMessage | null | undefined;
        pinInChatMessage?: proto.Message.IPinInChatMessage | null | undefined;
        pollCreationMessageV3?: proto.Message.IPollCreationMessage | null | undefined;
        scheduledCallEditMessage?: proto.Message.IScheduledCallEditMessage | null | undefined;
        ptvMessage?: proto.Message.IVideoMessage | null | undefined;
        botInvokeMessage?: proto.Message.IFutureProofMessage | null | undefined;
        callLogMesssage?: proto.Message.ICallLogMessage | null | undefined;
        messageHistoryBundle?: proto.Message.IMessageHistoryBundle | null | undefined;
        encCommentMessage?: proto.Message.IEncCommentMessage | null | undefined;
        bcallMessage?: proto.Message.IBCallMessage | null | undefined;
        lottieStickerMessage?: proto.Message.IFutureProofMessage | null | undefined;
        eventMessage?: proto.Message.IEventMessage | null | undefined;
        encEventResponseMessage?: proto.Message.IEncEventResponseMessage | null | undefined;
        commentMessage?: proto.Message.ICommentMessage | null | undefined;
        newsletterAdminInviteMessage?: proto.Message.INewsletterAdminInviteMessage | null | undefined;
        placeholderMessage?: proto.Message.IPlaceholderMessage | null | undefined;
        secretEncryptedMessage?: proto.Message.ISecretEncryptedMessage | null | undefined;
        albumMessage?: proto.Message.IAlbumMessage | null | undefined;
        eventCoverImage?: proto.Message.IFutureProofMessage | null | undefined;
        stickerPackMessage?: proto.Message.IStickerPackMessage | null | undefined;
        statusMentionMessage?: proto.Message.IFutureProofMessage | null | undefined;
        pollResultSnapshotMessage?: proto.Message.IPollResultSnapshotMessage | null | undefined;
        pollCreationOptionImageMessage?: proto.Message.IFutureProofMessage | null | undefined;
        associatedChildMessage?: proto.Message.IFutureProofMessage | null | undefined;
        groupStatusMentionMessage?: proto.Message.IFutureProofMessage | null | undefined;
        pollCreationMessageV4?: proto.Message.IFutureProofMessage | null | undefined;
        pollCreationMessageV5?: proto.Message.IFutureProofMessage | null | undefined;
        statusAddYours?: proto.Message.IFutureProofMessage | null | undefined;
        groupStatusMessage?: proto.Message.IFutureProofMessage | null | undefined;
        richResponseMessage?: proto.IAIRichResponseMessage | null | undefined;
        statusNotificationMessage?: proto.Message.IStatusNotificationMessage | null | undefined;
        limitSharingMessage?: proto.Message.IFutureProofMessage | null | undefined;
        botTaskMessage?: proto.Message.IFutureProofMessage | null | undefined;
        questionMessage?: proto.Message.IFutureProofMessage | null | undefined;
        messageHistoryNotice?: proto.Message.IMessageHistoryNotice | null | undefined;
    };
    getContentType(content: WAProto.IMessage | undefined): keyof proto.IMessage | undefined;
    downloadContentFromMessage(downloadable: DownloadableMessage, type: MediaType, opts?: MediaDownloadOptions): Promise<import("stream").Transform>;
    sendInteractiveMessage(jid: string, content: IInteractiveMessageContent, options?: MessageGenerationOptionsFromContent | {}): void;
    replyInteractiveMessage(content: IInteractiveMessageContent, options?: MessageGenerationOptionsFromContent | {}): Promise<void>;
    prepareWAMessageMedia(message: AnyMediaMessageContent, options: MediaGenerationOptions): Promise<proto.Message>;
    decodeJid(jid: string): string;
}
//# sourceMappingURL=Ctx.d.ts.map