import { CallLinkType, ChatState, Channel, ChannelMessage, Catalog, Contact, ContactCard, EngineEventCallbacks, EngineStatus, Group, GroupInfo, GroupMemberAddMode, GroupMembershipRequest, IncomingMessage, IWhatsAppEngine, Label, CustomLinkPreview, GroupJoinInfo, LabelInput, LocationInput, MediaInput, MessageReaction, MessageResult, PaginatedProducts, ParticipantOperationResult, PollInput, Product, ProductQueryOptions, Status, StatusResult, ChatSummary, StatusPostOptions } from '../interfaces/whatsapp-engine.interface';
import { BaileysAdapterConfig } from '../types/baileys.types';
export { createProxyAgent } from './baileys-lifecycle';
export declare class BaileysAdapter implements IWhatsAppEngine {
    private readonly config;
    private readonly logger;
    private readonly inboundLimiter;
    private readonly authPath;
    private readonly sessionStore;
    private readonly groups;
    private readonly messaging;
    private readonly contacts;
    private readonly statusOps;
    private readonly channels;
    private readonly catalog;
    private readonly history;
    private readonly events;
    private readonly lifecycle;
    private callbacks;
    private get sock();
    private set sock(value);
    private get connectedAt();
    private get liveCalls();
    private loadLib;
    constructor(config: BaileysAdapterConfig);
    initialize(callbacks: EngineEventCallbacks): Promise<void>;
    disconnect(): Promise<void>;
    logout(): Promise<void>;
    destroy(): Promise<void>;
    forceDestroy(): Promise<void>;
    getStatus(): EngineStatus;
    probeLiveness(): Promise<boolean>;
    getQRCode(): string | null;
    requestPairingCode(phoneNumber: string): Promise<string>;
    getPhoneNumber(): string | null;
    getPushName(): string | null;
    sendTextMessage(chatId: string, text: string, mentions?: string[], options?: {
        linkPreview?: boolean;
        customPreview?: CustomLinkPreview;
    }): Promise<MessageResult>;
    checkNumberExists(number: string): Promise<boolean>;
    getNumberId(number: string): Promise<string | null>;
    sendChatState(chatId: string, state: ChatState): Promise<void>;
    setOnlinePresence(available: boolean): Promise<void>;
    sendImageMessage(chatId: string, media: MediaInput): Promise<MessageResult>;
    sendVideoMessage(chatId: string, media: MediaInput): Promise<MessageResult>;
    sendAudioMessage(chatId: string, media: MediaInput): Promise<MessageResult>;
    sendDocumentMessage(chatId: string, media: MediaInput): Promise<MessageResult>;
    sendStickerMessage(chatId: string, media: MediaInput): Promise<MessageResult>;
    sendLocationMessage(chatId: string, location: LocationInput): Promise<MessageResult>;
    sendContactMessage(chatId: string, contact: ContactCard): Promise<MessageResult>;
    sendPollMessage(chatId: string, poll: PollInput): Promise<MessageResult>;
    replyToMessage(chatId: string, quotedMsgId: string, text: string, mentions?: string[]): Promise<MessageResult>;
    forwardMessage(fromChatId: string, toChatId: string, messageId: string): Promise<MessageResult>;
    reactToMessage(chatId: string, messageId: string, emoji: string): Promise<void>;
    deleteMessage(chatId: string, messageId: string, forEveryone?: boolean): Promise<void>;
    starMessage(chatId: string, messageId: string, star: boolean): Promise<void>;
    pinMessage(chatId: string, messageId: string, durationSeconds: number): Promise<void>;
    unpinMessage(chatId: string, messageId: string): Promise<void>;
    editMessage(chatId: string, messageId: string, body: string, mentions?: string[]): Promise<MessageResult>;
    getGroups(): Promise<Group[]>;
    getGroupInfo(groupId: string): Promise<GroupInfo | null>;
    createGroup(name: string, participants: string[]): Promise<Group>;
    addParticipants(groupId: string, participants: string[]): Promise<ParticipantOperationResult[]>;
    removeParticipants(groupId: string, participants: string[]): Promise<ParticipantOperationResult[]>;
    promoteParticipants(groupId: string, participants: string[]): Promise<ParticipantOperationResult[]>;
    demoteParticipants(groupId: string, participants: string[]): Promise<ParticipantOperationResult[]>;
    leaveGroup(groupId: string): Promise<void>;
    setGroupSubject(groupId: string, subject: string): Promise<void>;
    setGroupDescription(groupId: string, description: string): Promise<void>;
    getGroupInviteCode(groupId: string): Promise<string>;
    revokeGroupInviteCode(groupId: string): Promise<string>;
    getGroupJoinInfo(inviteCode: string): Promise<GroupJoinInfo>;
    joinGroupViaInviteCode(inviteCode: string): Promise<string>;
    setGroupMessagesAdminsOnly(groupId: string, adminsOnly: boolean): Promise<void>;
    setGroupInfoAdminsOnly(groupId: string, adminsOnly: boolean): Promise<void>;
    setGroupMemberAddMode(groupId: string, mode: GroupMemberAddMode): Promise<void>;
    setGroupPicture(groupId: string, media: MediaInput): Promise<void>;
    deleteGroupPicture(groupId: string): Promise<void>;
    setGroupEphemeral(groupId: string, durationSec: number): Promise<void>;
    getGroupMembershipRequests(groupId: string): Promise<GroupMembershipRequest[]>;
    approveGroupMembershipRequests(groupId: string, participants?: string[]): Promise<ParticipantOperationResult[]>;
    rejectGroupMembershipRequests(groupId: string, participants?: string[]): Promise<ParticipantOperationResult[]>;
    getProfilePicture(contactId: string): Promise<string | null>;
    blockContact(contactId: string): Promise<void>;
    upsertContact(contactId: string, firstName: string, lastName?: string): Promise<void>;
    deleteContact(contactId: string): Promise<void>;
    unblockContact(contactId: string): Promise<void>;
    getBlockedContacts(): Promise<string[]>;
    setProfileName(name: string): Promise<void>;
    setProfileStatus(status: string): Promise<void>;
    deleteProfilePicture(): Promise<void>;
    setProfilePicture(media: MediaInput): Promise<void>;
    getContacts(): Promise<Contact[]>;
    getContactById(contactId: string): Promise<Contact | null>;
    resolveContactPhone(contactId: string): Promise<string | null>;
    getChats(): Promise<ChatSummary[]>;
    subscribeToPresence(chatId: string): Promise<void>;
    sendSeen(chatId: string, messageIds?: string[]): Promise<boolean>;
    markUnread(chatId: string): Promise<boolean>;
    deleteChat(chatId: string): Promise<boolean>;
    muteChat(chatId: string, muteUntil: number | null): Promise<void>;
    pinChat(chatId: string, pin: boolean): Promise<boolean>;
    archiveChat(chatId: string, archive: boolean): Promise<boolean>;
    clearChatMessages(chatId: string): Promise<boolean>;
    getMessageReactions(_chatId: string, _messageId: string): Promise<MessageReaction[]>;
    getChatsByLabel(_labelId: string): Promise<ChatSummary[]>;
    votePoll(_chatId: string, _pollMessageId: string, _options: string[]): Promise<void>;
    getChatHistory(_chatId: string, _limit?: number, _includeMedia?: boolean, _mediaMaxBytes?: number, _signal?: AbortSignal): Promise<IncomingMessage[]>;
    getLabels(): Promise<Label[]>;
    getLabelById(_labelId: string): Promise<Label | null>;
    getChatLabels(_chatId: string): Promise<Label[]>;
    private assertLabelable;
    addLabelToChat(chatId: string, labelId: string): Promise<void>;
    removeLabelFromChat(chatId: string, labelId: string): Promise<void>;
    upsertLabel(label: LabelInput): Promise<void>;
    deleteLabel(labelId: string): Promise<void>;
    private ownJidForAppState;
    createChannel(name: string, description?: string): Promise<Channel>;
    deleteChannel(channelId: string): Promise<void>;
    muteChannel(channelId: string, mute: boolean): Promise<void>;
    demoteChannelAdmin(channelId: string, userId: string): Promise<void>;
    transferChannelOwnership(channelId: string, newOwnerId: string): Promise<void>;
    getSubscribedChannels(): Promise<Channel[]>;
    getChannelById(channelId: string): Promise<Channel | null>;
    subscribeToChannel(inviteCode: string): Promise<Channel>;
    unsubscribeFromChannel(channelId: string): Promise<void>;
    getChannelMessages(_channelId: string, _limit?: number): Promise<ChannelMessage[]>;
    getContactStatuses(): Promise<Status[]>;
    getContactStatus(_contactId: string): Promise<Status[]>;
    postTextStatus(text: string, options: StatusPostOptions): Promise<StatusResult>;
    postImageStatus(media: MediaInput, options: StatusPostOptions): Promise<StatusResult>;
    postVideoStatus(media: MediaInput, options: StatusPostOptions): Promise<StatusResult>;
    postVoiceStatus(media: MediaInput, options: StatusPostOptions): Promise<StatusResult>;
    deleteStatus(statusId: string): Promise<void>;
    getCatalog(): Promise<Catalog | null>;
    getProducts(options?: ProductQueryOptions): Promise<PaginatedProducts>;
    getProduct(productId: string): Promise<Product | null>;
    sendProduct(chatId: string, productId: string, body?: string): Promise<MessageResult>;
    sendCatalog(_chatId: string, _body?: string): Promise<MessageResult>;
    createCallLink(type: CallLinkType, startTime: number): Promise<string>;
    rejectCall(callId: string): Promise<void>;
    private normalizedSelfJid;
    private unsupported;
    protected ensureReady(): void;
    private extractPhone;
}
