import Arweave from 'arweave'; import { ArweaveSigner } from 'warp-arbundles'; import { InjectedArweaveSigner } from 'warp-contracts-plugin-deploy'; import { AuthenticatedArFSClient } from '../arfs'; import { ArtByCityConfig } from '../config'; import { ArtByCityPublications, AudioPublicationOptions, ImagePublicationOptions, ModelPublicationOptions, PublicationResult, TextPublicationOptions, VideoPublicationOptions } from './'; export default class AuthenticatedArtByCityPublications extends ArtByCityPublications { protected readonly arweave: Arweave; protected readonly arfs: AuthenticatedArFSClient; protected readonly config: ArtByCityConfig; private readonly signer; private readonly publicationItemFactory; private readonly imageItemFactory; private readonly fileItemFactory; constructor(arweave: Arweave, arfs: AuthenticatedArFSClient, config: ArtByCityConfig, signer: ArweaveSigner | InjectedArweaveSigner); create(opts: ImagePublicationOptions): Promise; create(opts: AudioPublicationOptions): Promise; create(opts: ModelPublicationOptions): Promise; create(opts: VideoPublicationOptions): Promise; create(opts: TextPublicationOptions): Promise; private createFilePublication; private createImagePublication; private createPublicationBundleTransaction; }