import { Image, Video } from './media.js'; import { Language, Tag } from './tag.js'; import { Base } from '../internal/base.js'; import { GalleryManager } from '../managers/gallery.js'; /** * A title associated with a gallery. * * @see {@link Gallery} */ declare class Title { /** * The display title of the gallery. * * @type {string} * @readonly */ readonly display: string; /** * The Japanese title of the gallery. * * @deprecated Always `null`. * @type {string | null} * @readonly */ readonly japanese: string | null; } /** * A lightweight reference to a gallery by its unique identifier. * * @see {@link Gallery} * @see {@link GalleryManager} */ declare class GalleryReference extends Base { /** * The unique identifier of the gallery. * * @type {number} * @readonly */ readonly id: number; /** * Retrieves the full gallery for this reference. * * @returns {Promise} A `Promise` that resolves to the full gallery. * @see {@link Gallery} */ retrieve(): Promise; } /** * A translated gallery reference for a specific language. * * @extends {Gallery} * @see {@link Gallery} */ declare class TranslatedGallery extends GalleryReference { /** * The language of the translated gallery, or `null` if unavailable. * * @type {Language | null} * @readonly * @see {@link Language} */ readonly language: Language | null; /** * The URL path of the gallery. * * @type {string} * @readonly */ readonly url: string; } /** * A complete gallery including metadata, media files, and relationships. * * @extends {TranslatedGallery} * @see {@link GalleryManager} */ declare class Gallery extends TranslatedGallery { /** * The title of the gallery. * * @type {Title} * @readonly * @see {@link Title} */ readonly title: Title; /** * The type of the gallery. * * @type {'doujinshi' | 'manga' | 'artistcg' | 'gamecg' | 'imageset' | 'anime'} * @readonly */ readonly type: 'doujinshi' | 'manga' | 'artistcg' | 'gamecg' | 'imageset' | 'anime'; /** * Artist tags associated with the gallery. * * @type {Tag[]} * @readonly * @see {@link Tag} */ readonly artists: readonly Tag[]; /** * Group tags associated with the gallery. * * @type {Tag[]} * @readonly * @see {@link Tag} */ readonly groups: readonly Tag[]; /** * Series (parody) tags associated with the gallery. * * @type {Tag[]} * @readonly * @see {@link Tag} */ readonly series: readonly Tag[]; /** * Character tags associated with the gallery. * * @type {Tag[]} * @readonly * @see {@link Tag} */ readonly characters: readonly Tag[]; /** * General, male, and female tags associated with the gallery. * * @type {Tag[]} * @readonly * @see {@link Tag} */ readonly tags: readonly Tag[]; /** * The image files in the gallery. * * @type {Image[]} * @readonly * @see {@link Image} */ readonly files: readonly Image[]; /** * Available translations in other languages. * * @type {TranslatedGallery[]} * @readonly * @see {@link TranslatedGallery} */ readonly translations: readonly TranslatedGallery[]; /** * References to related galleries. * * @type {GalleryReference[]} * @readonly * @see {@link GalleryReference} */ readonly relations: readonly GalleryReference[]; /** * Whether the gallery is blocked. * * @type {boolean} * @readonly */ readonly isBlocked: boolean; /** * The date when the gallery was added. * * @type {Date} * @readonly */ readonly addedDate: Date; /** * The date when the original work was published, or `null` if unavailable. * * @type {Date | null} * @readonly */ readonly publishedDate: Date | null; /** * The video resource associated with the gallery, or `null` if unavailable. * * @type {Video | null} * @readonly * @see {@link Video} */ readonly video: Video | null; /** * Returns a pair of representative thumbnail images. * * @returns {[Image, Image]} A tuple of the first and middle images from the gallery. * @see {@link Image} */ getThumbnails(): [Image, Image]; } export { Gallery, GalleryReference, Title, TranslatedGallery };