import { tl } from '../../../tl/index.js';
import { ITelegramClient } from '../../client.types.js';
import { InputPeerLike, Message } from '../../types/index.js';
export interface ForwardMessageOptions {
    /** Destination chat ID, username, phone, `"me"` or `"self"` */
    toChatId: InputPeerLike;
    /** When forwarding to forums, ID of the thread to forward to */
    toThreadId?: number;
    /**
     * When forwarding to a monoforum you are an admin of,
     * you **must** pass an ID of a peer you are sending the message to.
     */
    toMonoforumPeer?: InputPeerLike;
    /**
     * Whether to forward silently (also applies to caption message).
     */
    silent?: boolean;
    /**
     * If set, the forwarding will be scheduled to this date
     * (also applies to caption message).
     * When passing a number, a UNIX time in ms is expected.
     *
     * You can also pass `0x7FFFFFFE`, this will send the message
     * once the peer is online
     */
    schedule?: Date | number;
    /**
     * Whether to clear draft after sending this message (only used for caption)
     *
     * @default  `false`
     */
    clearDraft?: boolean;
    /**
     * Whether to forward without author
     */
    noAuthor?: boolean;
    /**
     * Whether to forward without caption (implies {@link noAuthor})
     */
    noCaption?: boolean;
    /**
     * Whether to disallow further forwards of this message.
     *
     * Only for bots, works even if the target chat does not
     * have content protection.
     */
    forbidForwards?: boolean;
    /**
     * Peer to use when sending the message.
     */
    sendAs?: InputPeerLike;
    /**
     * If passed, instead of sending the message, it will be saved into the
     * given quick reply shortcut (either its ID or its shortcut string).
     */
    quickReply?: number | string;
    /**
     * Whether to dispatch the forwarded messages
     * to the client's update handler.
     */
    shouldDispatch?: true;
    /**
     * Bots only: if set, allows sending up to 1000 messages per second,
     * ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
     * The Stars will be withdrawn from the bot's balance.
     */
    allowPaidFloodskip?: boolean;
    /**
     * Whether to allow payment for messages.
     * If set, the value represents the maximum number of stars to be paid
     */
    allowPaidMessages?: tl.Long;
    /** Video timestamp to use for the forwarded video */
    videoTimestamp?: number;
}
/**
 * Forward one or more messages by their IDs.
 * You can forward no more than 100 messages at once.
 *
 * @param toChatId  Destination chat ID, username, phone, `"me"` or `"self"`
 * @param fromChatId  Source chat ID, username, phone, `"me"` or `"self"`
 * @param messages  Message IDs
 * @param params  Additional sending parameters
 * @returns  Newly sent, forwarded messages in the destination chat.
 */
export declare function forwardMessagesById(client: ITelegramClient, params: ForwardMessageOptions & {
    /** Source chat ID, username, phone, `"me"` or `"self"` */
    fromChatId: InputPeerLike;
    /** Message IDs to forward */
    messages: number[];
}): Promise<Message[]>;
/**
 * Forward one or more {@link Message}s to another chat.
 *
 * > **Note**: all messages must be from the same chat.
 */
export declare function forwardMessages(client: ITelegramClient, params: ForwardMessageOptions & {
    messages: Message[];
}): Promise<Message[]>;
