/**
* MTKruto - Cross-runtime JavaScript library for building Telegram clients
* Copyright (C) 2023-2026 Roj
*
* This file is part of MTKruto.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
*/
import { Api } from "../2_tl.js";
import type { PeerGetter } from "./1_chat_p.js";
/** @unlisted */
export type MessageEntityType = "mention" | "hashtag" | "botCommand" | "url" | "email" | "bold" | "italic" | "code" | "pre" | "textLink" | "textMention" | "cashtag" | "phoneNumber" | "underline" | "strikethrough" | "blockquote" | "bankCard" | "spoiler" | "customEmoji" | "dateTime";
/** @unlisted */
export interface _MessageEntityBase {
type: MessageEntityType;
offset: number;
length: number;
}
/** @unlisted */
export interface MessageEntityMention extends _MessageEntityBase {
type: "mention";
}
/** @unlisted */
export interface MessageEntityHashtag extends _MessageEntityBase {
type: "hashtag";
}
/** @unlisted */
export interface MessageEntityBotCommand extends _MessageEntityBase {
type: "botCommand";
}
/** @unlisted */
export interface MessageEntityURL extends _MessageEntityBase {
type: "url";
}
/** @unlisted */
export interface MessageEntityEmailAddress extends _MessageEntityBase {
type: "email";
}
/** @unlisted */
export interface MessageEntityBold extends _MessageEntityBase {
type: "bold";
}
/** @unlisted */
export interface MessageEntityItalic extends _MessageEntityBase {
type: "italic";
}
/** @unlisted */
export interface MessageEntityPre extends _MessageEntityBase {
type: "pre";
/** The language identifier of the code. */
language: string;
}
/** @unlisted */
export interface MessageEntityCode extends _MessageEntityBase {
type: "code";
}
/** @unlisted */
export interface MessageEntityTextLink extends _MessageEntityBase {
type: "textLink";
/** A URL that will be opened after the text is tapped. */
url: string;
}
/** @unlisted */
export interface MessageEntityTextMention extends _MessageEntityBase {
type: "textMention";
/** The identifier of the user to mention. */
userId: number;
}
/** @unlisted */
export interface MessageEntityCashtag extends _MessageEntityBase {
type: "cashtag";
}
/** @unlisted */
export interface MessageEntityPhoneNumber extends _MessageEntityBase {
type: "phoneNumber";
}
/** @unlisted */
export interface MessageEntityUnderline extends _MessageEntityBase {
type: "underline";
}
/** @unlisted */
export interface MessageEntityStrikethrough extends _MessageEntityBase {
type: "strikethrough";
}
/** @unlisted */
export interface MessageEntityBlockquote extends _MessageEntityBase {
type: "blockquote";
collapsible?: true;
}
/** @unlisted */
export interface MessageEntityBankCard extends _MessageEntityBase {
type: "bankCard";
}
/** @unlisted */
export interface MessageEntitySpoiler extends _MessageEntityBase {
type: "spoiler";
}
/** @unlisted */
export interface MessageEntityCustomEmoji extends _MessageEntityBase {
type: "customEmoji";
/** The identifier of the custom emoji. */
customEmojiId: string;
}
/** @unlisted */
export interface MessageEntityDateTime extends _MessageEntityBase {
type: "dateTime";
/** The format of the date time. */
format?: string;
/** A point in time. */
dateTime: number;
}
/** A single entity of a message's text or caption. */
export type MessageEntity = MessageEntityMention | MessageEntityHashtag | MessageEntityBotCommand | MessageEntityURL | MessageEntityEmailAddress | MessageEntityBold | MessageEntityItalic | MessageEntityCode | MessageEntityPre | MessageEntityTextLink | MessageEntityTextMention | MessageEntityCashtag | MessageEntityPhoneNumber | MessageEntityUnderline | MessageEntityStrikethrough | MessageEntityBlockquote | MessageEntityBankCard | MessageEntitySpoiler | MessageEntityCustomEmoji | MessageEntityDateTime;
export declare function constructMessageEntity(obj: Api.MessageEntity): MessageEntity | null;
export declare function messageEntityToTlObject(entity: MessageEntity, getPeer: PeerGetter): Api.MessageEntity;
export declare function sortMessageEntities(entities: MessageEntity[]): MessageEntity[];
//# sourceMappingURL=2_message_entity.d.ts.map