import { ITelegramClient } from '../../client.types.js';
import { ArrayPaginated, InputPeerLike, Message } from '../../types/index.js';
export interface GetHistoryOffset {
    id: number;
    date: number;
}
/**
 * Get chat history.
 *
 * @param chatId  Chat's marked ID, its username, phone or `"me"` or `"self"`.
 * @param params  Additional fetch parameters
 */
export declare function getHistory(client: ITelegramClient, chatId: InputPeerLike, params?: {
    /**
     * Limits the number of messages to be retrieved.
     *
     * @default  100
     */
    limit?: number;
    /**
     * Offset for pagination
     */
    offset?: GetHistoryOffset;
    /**
     * Additional offset from {@link offset}, in resulting messages.
     *
     * This can be used for advanced use cases, like:
     * - Loading 20 messages newer than message with ID `MSGID`:
     *   `offset = MSGID, addOffset = -20, limit = 20`
     * - Loading 20 messages around message with ID `MSGID`:
     *   `offset = MSGID, addOffset = -10, limit = 20`
     *
     * @default  `0` (disabled)
     */
    addOffset?: number;
    /**
     * Minimum message ID to return
     *
     * @default  `0` (disabled).
     */
    minId?: number;
    /**
     * Maximum message ID to return.
     *
     * @default  `0` (disabled).
     */
    maxId?: number;
    /**
     * Whether to retrieve messages in reversed order (from older to recent),
     * starting from {@link offset} (inclusive).
     *
     * > **Note**: Using `reverse=true` requires you to pass offset from which to start
     * > fetching the messages "downwards". If you call `getHistory` with `reverse=true`
     * > and without any offset, it will return an empty array.
     *
     * @default false
     */
    reverse?: boolean;
}): Promise<ArrayPaginated<Message, GetHistoryOffset>>;
