import type { ArkmeExtensionPublishPage } from './types.js'; import { type ArkmeExtensionArtifact, type ArkmeExtensionCatalogItem, type ArkmeExtensionCatalogPage, type ArkmeExtensionCatalogSort, type ArkmeExtensionClassificationPage, type ArkmeExtensionClassificationTree, type ArkmeExtensionDeleteResult, type ArkmeExtensionIconMediaType, type ArkmeExtensionIconResolution, type ArkmeExtensionIconResult, type ArkmeExtensionIconUploadSession, type ArkmeExtensionPreviewGallery, type ArkmeExtensionPreviewMediaType, type ArkmeExtensionPreviewResolution, type ArkmeExtensionPreviewUploadSession, type ArkmeExtensionInstallResolution, type ArkmeExtensionPublishResult, type ArkmeExtensionEditableVisibility, type ArkmeExtensionMetadataUpdateResult, type ArkmeBundlePublishSession, type ArkmeExtensionPublishSession, type ArkmeExtensionUpdateResolution, type ArkmeExtensionVisibility, type ArkmeExtensionReviewWireCreateResult, type ArkmeExtensionReviewWirePage, type ArkmeExtensionShare, type ArkmeSharedExtensionDetail, type ArkmeInstalledExtension, type ArkmeExtensionAuditResult, type ArkmeExtensionAuditTrigger } from './types.js'; import { type ArkmeBundleArtifact, type ArkmeBundlePublishSource, type ArkmeNativeBundleArtifact, type ArkmeNativeBundlePublishSource } from './bundle-artifact.js'; import type { ArkmeExtensionUploadSlot } from './types.js'; export type ExtensionAuthenticatedPost = (path: string, body: Record, signal?: AbortSignal) => Promise; export interface ExtensionDownloadProgress { downloadedBytes: number; totalBytes?: number; } export declare class ExtensionPublishClient { private readonly post; private readonly fetchImpl; private readonly timeoutMs; constructor(post: ExtensionAuthenticatedPost, fetchImpl?: typeof fetch, timeoutMs?: number); createPublishSession(input: { extension_id?: string; name: string; description: string; version: string; visibility: ArkmeExtensionVisibility; changelog?: string; artifact_size: number; artifact_sha256: string; manifest_sha256: string; manifest: Record; idempotency_key: string; }, signal?: AbortSignal): Promise; createBundlePublishSession(input: { extension_id?: string; name: string; description: string; visibility: ArkmeExtensionVisibility; changelog?: string; idempotency_key: string; bundle: ArkmeBundleArtifact; source: ArkmeBundlePublishSource['source']; listingSource?: { type: 'github_repository'; url: string; }; }, signal?: AbortSignal): Promise; createNativeBundlePublishSession(input: { extension_id?: string; name: string; description: string; visibility: ArkmeExtensionVisibility; changelog?: string; idempotency_key: string; bundle: ArkmeNativeBundleArtifact; source: ArkmeNativeBundlePublishSource['source']; listingSource?: { type: 'github_repository'; url: string; }; }, signal?: AbortSignal): Promise; uploadBundle(slot: ArkmeExtensionUploadSlot, bundle: ArkmeBundleArtifact, signal?: AbortSignal): Promise; uploadNativeBundle(slot: ArkmeExtensionUploadSlot, bundle: ArkmeNativeBundleArtifact, signal?: AbortSignal): Promise; uploadSource(slot: ArkmeExtensionUploadSlot, source: ArkmeBundlePublishSource['source'], signal?: AbortSignal): Promise; uploadArtifact(uploadUrl: string, artifact: ArkmeExtensionArtifact, uploadHeaders?: Readonly>, signal?: AbortSignal): Promise; private uploadBytes; completePublishSession(publishSessionId: string, signal?: AbortSignal): Promise; listPublishSessions(limit?: number, offset?: number, signal?: AbortSignal): Promise; resumePublishSession(publishSessionId: string, signal?: AbortSignal): Promise; private awaitPublishAttempt; private requirePublishRecovery; publishStatus(publishSessionId: string, signal?: AbortSignal): Promise; rotateShareLink(extensionId: string, clientMutationId: string, signal?: AbortSignal): Promise; sharedDetail(shareRef: string, signal?: AbortSignal): Promise<{ extension: ArkmeSharedExtensionDetail; }>; resolveSharedCatalogTarget(shareRef: string, signal?: AbortSignal): Promise<{ extension_id: string; }>; list(input?: { query?: string; sort?: ArkmeExtensionCatalogSort; cursor?: string; limit?: number; owner_user_id?: number; exclude_extension_id?: string; }, signal?: AbortSignal): Promise; classificationTree(limit?: number, signal?: AbortSignal): Promise; classificationItems(input: { category_id: string; query?: string; sort?: ArkmeExtensionCatalogSort; cursor?: string; limit?: number; }, signal?: AbortSignal): Promise; detail(extensionId: string, signal?: AbortSignal): Promise; recordOpen(extensionId: string, signal?: AbortSignal): Promise<{ extension_id: string; open_count: number; idempotent_replay: boolean; }>; setInstallationState(input: { extension_id: string; installation_id: string; installed: boolean; }, signal?: AbortSignal): Promise<{ extension_id: string; installed: boolean; install_user_count: number; }>; syncInstallationStates(input: { installation_id: string; installed_extension_ids: string[]; }, signal?: AbortSignal): Promise<{ installation_id: string; install_user_counts: Record; }>; versions(extensionId: string, signal?: AbortSignal): Promise; auditExtension(extensionId: string, trigger: ArkmeExtensionAuditTrigger, signal?: AbortSignal): Promise; myList(input?: { cursor?: string; limit?: number; }, signal?: AbortSignal): Promise; updateMetadata(input: { extension_id: string; name: string; description: string; visibility: ArkmeExtensionEditableVisibility; client_mutation_id: string; }, signal?: AbortSignal): Promise; listReviews(extensionId: string, input?: { limit?: number; offset?: number; }, signal?: AbortSignal): Promise; createReview(input: { extensionId: string; recordUid: string; parentReviewId?: string; textContent: string; rating?: number; clientMutationId: string; }, signal?: AbortSignal): Promise; deleteExtension(extensionId: string, signal?: AbortSignal): Promise; createIconUploadSession(input: { extension_id: string; content_type: ArkmeExtensionIconMediaType; icon_size: number; icon_sha256: string; idempotency_key: string; }, signal?: AbortSignal): Promise; uploadIcon(uploadUrl: string, data: Uint8Array, mediaType: ArkmeExtensionIconMediaType, uploadHeaders?: Readonly>, signal?: AbortSignal): Promise; completeIconUploadSession(iconUploadSessionId: string, signal?: AbortSignal): Promise; resolveIcon(extensionId: string, iconRef: string, signal?: AbortSignal): Promise; downloadIcon(resolution: ArkmeExtensionIconResolution, signal?: AbortSignal): Promise; createPreviewUploadSession(input: { extension_id: string; content_type: ArkmeExtensionPreviewMediaType; preview_size: number; preview_sha256: string; idempotency_key: string; }, signal?: AbortSignal): Promise; uploadPreview(uploadUrl: string, data: Uint8Array, mediaType: ArkmeExtensionPreviewMediaType, uploadHeaders?: Readonly>, signal?: AbortSignal): Promise; completePreviewUploadSession(previewUploadSessionId: string, signal?: AbortSignal): Promise; deletePreview(extensionId: string, previewRef: string, expectedRevision: number, signal?: AbortSignal): Promise; reorderPreviews(extensionId: string, orderedPreviewRefs: string[], expectedRevision: number, signal?: AbortSignal): Promise; resolvePreview(extensionId: string, previewRef: string, signal?: AbortSignal): Promise; downloadPreview(resolution: ArkmeExtensionPreviewResolution, signal?: AbortSignal): Promise; resolveInstall(extensionId: string, version?: string, signal?: AbortSignal): Promise; resolveUpdates(installed: readonly ArkmeInstalledExtension[], signal?: AbortSignal): Promise; downloadArtifact(artifactUrl: string, artifactHeaders?: Readonly>, signal?: AbortSignal, onProgress?: (progress: ExtensionDownloadProgress) => void): Promise; } //# sourceMappingURL=publish-client.d.ts.map