import { tl } from '../../../tl/index.js'; import { ITelegramClient } from '../../client.types.js'; import { ArrayPaginated, InputPeerLike, Message } from '../../types/index.js'; export type SearchMessagesOffset = number; /** * Search for messages inside a specific chat * * @param chatId Chat's marked ID, its username, phone or `"me"` or `"self"`. * @param params Additional search parameters */ export declare function searchMessages(client: ITelegramClient, params?: { /** * Text query string. Required for text-only messages, * optional for media. * * @default `""` (empty string) */ query?: string; /** * Chat where to search for messages. * * When empty, will search across common message box (i.e. private messages and legacy chats) */ chatId?: InputPeerLike; /** * Offset ID for the search. Only messages earlier than this ID will be returned. * * @default `0` (starting from the latest message). */ offset?: SearchMessagesOffset; /** * Additional offset from {@link offset}, in resulting messages. * * This can be used for advanced use cases, like: * - Loading 20 results newer than message with ID `MSGID`: * `offset = MSGID, addOffset = -20, limit = 20` * - Loading 20 results around message with ID `MSGID`: * `offset = MSGID, addOffset = -10, limit = 20` * * When {@link offset} is not set, this will be relative to the last message * * @default `0` (disabled) */ addOffset?: number; /** * Minimum message ID to return * * @default `0` (disabled). */ minId?: number; /** * Maximum message ID to return. * * Unless {@link addOffset} is used, this will work the same as {@link offset}. * * @default `0` (disabled). */ maxId?: number; /** * Minimum message date to return * * @default `0` (disabled). */ minDate?: number | Date; /** * Maximum message date to return * * @default `0` (disabled). */ maxDate?: number | Date; /** * Thread ID to return only messages from this thread. */ threadId?: number; /** * Limits the number of messages to be retrieved. * * @default 100 */ limit?: number; /** * Filter the results using some filter (see {@link SearchFilters}) * * @default {@link SearchFilters.Empty} (i.e. will return all messages) */ filter?: tl.TypeMessagesFilter; /** * Search only for messages sent by a specific user. * * You can pass their marked ID, username, phone or `"me"` or `"self"` */ fromUser?: InputPeerLike; }): Promise>;