/**
* 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 { type MaybePromise } from "../1_utilities.js";
import { Api, SecretChats } from "../2_tl.js";
import { type MaskPosition } from "./0_mask_position.js";
import { type Thumbnail } from "./0_thumbnail.js";
/** A sticker. */
export interface Sticker {
/** A file identifier that can be used to download or reuse this file. */
fileId: string;
/** A file identifier that can be used to identify this file. */
fileUniqueId: string;
/** Type of the sticker, currently one of "regular", "mask", "customEmoji". The type of the sticker is independent from its format, which is determined by the fields isAnimated and isVideo. */
type: "regular" | "mask" | "customEmoji";
/** The width of the sticker. */
width: number;
/** The height of the sticker. */
height: number;
/** Whether the sticker is animated. */
isAnimated: boolean;
/** Whether the sticker is a video. */
isVideo: boolean;
/** Thumbnails of the sticker in the WebP or JPG. */
thumbnails: Thumbnail[];
/** The emoji associated with the sticker. */
emoji?: string;
/** Name of the sticker set where the sticker belongs. */
setName?: string;
/** For mask stickers, the position where the mask should be placed. */
maskPosition?: MaskPosition;
/** For custom emoji stickers, unique identifier of the custom emoji. */
customEmojiId?: string;
/** Whether the sticker needs repainting. */
isRepaintingNeeded?: boolean;
/** File size in bytes. */
fileSize?: number;
}
/** @unlisted */
export type StickerSetNameGetter = (inputStickerSet: Api.inputStickerSetID) => MaybePromise;
export declare function constructSticker(document: Api.document, fileId: string, fileUniqueId: string, getStickerSetName: StickerSetNameGetter, customEmojiId?: string): Promise;
export declare function constructSticker2(document: Api.document, fileId: string, fileUniqueId: string, setName: string | undefined, customEmojiId?: string): Sticker;
export declare function constructSticker3(document: SecretChats.decryptedMessageMediaExternalDocument | SecretChats.decryptedMessageMediaDocument46 | SecretChats.decryptedMessageMediaDocument, fileId: string, fileUniqueId: string): Sticker;
//# sourceMappingURL=1_sticker.d.ts.map