import { Transaction } from 'warp-contracts'; import { Topic } from '../common/tags'; export declare enum PublicationTypes { image = "image", audio = "audio", model = "model", video = "video", text = "text" } export type PublicationType = keyof typeof PublicationTypes; export interface PublishingFile { data: string | Uint8Array; type: SupportedMimeTypes; size: number; name: string; lastModified?: number; } export interface PublishingImage extends PublishingFile { type: ImageMimeTypes; small: PublishingThumbnail; large: PublishingThumbnail; } export interface PublishingThumbnail extends PublishingFile { type: 'image/jpeg'; } export interface PublishingAudio extends PublishingFile { type: AudioMimeTypes; } export interface PublishingModel extends PublishingFile { type: ModelMimeTypes; } export interface PublishingVideo extends PublishingFile { type: VideoMimeTypes; } export interface PublishingText extends PublishingFile { type: TextMimeTypes; } export declare function isPublishingImage(file: PublishingFile): file is PublishingImage; export declare function isPublishingAudio(file: PublishingFile): file is PublishingAudio; export declare function isPublishingModel(file: PublishingFile): file is PublishingModel; export declare function isPublishingVideo(file: PublishingFile): file is PublishingVideo; export declare function isPublishingText(file: PublishingFile): file is PublishingText; export interface BasePublicationOptions { type: PublicationType; title: string; slug?: string; description?: string; driveId?: string; folderId?: string; topics?: Topic[]; city?: string; medium?: string; genre?: string; } export interface ImagePublicationOptions extends BasePublicationOptions { type: 'image'; primary: PublishingImage; secondary?: PublishingFile[]; } export interface AudioPublicationOptions extends BasePublicationOptions { type: 'audio'; primary: PublishingAudio; thumbnail?: PublishingImage; secondary?: PublishingFile[]; } export interface ModelPublicationOptions extends BasePublicationOptions { type: 'model'; primary: PublishingModel; thumbnail?: PublishingImage; secondary?: PublishingFile[]; } export interface VideoPublicationOptions extends BasePublicationOptions { type: 'video'; primary: PublishingVideo; thumbnail?: PublishingImage; secondary?: PublishingFile[]; } export interface TextPublicationOptions extends BasePublicationOptions { type: 'text'; primary: PublishingText; thumbnail?: PublishingImage; secondary?: PublishingFile[]; } export type PublicationOptions = ImagePublicationOptions | AudioPublicationOptions | ModelPublicationOptions | VideoPublicationOptions | TextPublicationOptions; export declare const MimeTypes: { image: { 'image/apng': string; 'image/avif': string; 'image/gif': string; 'image/jpeg': string; 'image/png': string; 'image/svg+xml': string; 'image/webp': string; }; audio: { 'audio/aac': string; 'audio/flac': string; 'audio/mpeg': string; 'audio/wav': string; 'audio/ogg': string; 'audio/webm': string; }; model: { 'model/gltf+json': string; 'model/gltf+binary': string; }; video: { 'video/3gpp': string; 'video/3gpp2': string; 'video/mp4': string; 'video/mpeg': string; 'video/ogg': string; 'video/quicktime': string; 'video/webm': string; 'video/x-f4v': string; 'video/x-fli': string; 'video/x-flv': string; 'video/x-m4v': string; 'video/x-matroska': string; }; text: { 'text/plain': string; 'text/css': string; 'text/csv': string; 'text/html': string; 'text/javascript': string; }; }; export type ImageMimeTypes = keyof typeof MimeTypes.image; export type AudioMimeTypes = keyof typeof MimeTypes.audio; export type ModelMimeTypes = keyof typeof MimeTypes.model; export type VideoMimeTypes = keyof typeof MimeTypes.video; export type TextMimeTypes = keyof typeof MimeTypes.text; export type SupportedMimeTypes = ImageMimeTypes | AudioMimeTypes | ModelMimeTypes | VideoMimeTypes | TextMimeTypes; export interface PublicationResult { bundleTxId: string; primaryAssetTxId: string; primaryMetadataTxId: string; tx: Transaction; } export { default as ArtByCityPublications } from './publications'; export { default as AuthenticatedArtByCityPublications } from './authenticated-publications';