import { type RemoteWorkspaceSession } from "./remote-workspace-selection.js"; export declare const PRIVATE_PUBLICATION_MAX_BYTES: number; export type PrivatePublicationState = "awaiting_upload" | "queued" | "verifying" | "needs_attention" | "committed" | "rejected" | "cancelled" | "expired"; export interface PrivatePublicationDeclaration { idempotencyKey: string; version: string; expectedCurrentVersionId: string | null; manifestText: string; archiveSha256: string; archiveByteSize: number; } export interface PrivatePublicationView { id: string; skillId: string; version: string; expectedCurrentVersionId: string | null; archiveSha256: string; archiveByteSize: number; state: PrivatePublicationState; expiresAt: string; createdAt: string; versionId: string | null; } export interface PrivatePublishingCapability { contractVersion: 1; enabled: boolean; authentication: "interactive-session"; maxArchiveBytes: 16777216; uploadMaxTtlSeconds: 300; /** Server capability only; each execution still requires a separate quote and approval. */ executionEnabled: boolean; } /** Contains a short-lived bearer capability. Never print or persist this object. */ export interface PrivatePublicationUpload { method: "PUT"; uploadUrl: string; headers: Readonly>; expiresAt: string; } export declare class PrivatePublicationError extends Error { readonly code: string; readonly uncertain: boolean; readonly status?: number | undefined; constructor(code: string, message: string, uncertain?: boolean, status?: number | undefined); } export declare const publicationUuid: (v: unknown) => v is string; export declare const publicationSha256: (bytes: Uint8Array | string) => string; export declare function checkedPublicationDeclaration(value: unknown): PrivatePublicationDeclaration; export declare function checkedPublicationView(value: unknown, skillId: string, intentId?: string, declaration?: PrivatePublicationDeclaration): PrivatePublicationView; /** Explicit hosted contract, unrelated to registry publishSkill and its content revisions. * Session tokens stay in private fields and are never written to credentials. */ export declare class RemotePrivatePublicationsClient { #private; readonly apiOrigin: string; readonly organizationId: string; readonly userId: string; readonly membershipId: string; constructor(apiUrl: string, session: RemoteWorkspaceSession); getCapability(options?: { timeoutMs?: number; signal?: AbortSignal; }): Promise; begin(skillId: string, input: PrivatePublicationDeclaration): Promise; get(skillId: string, intentId: string, options?: { timeoutMs?: number; signal?: AbortSignal; }): Promise; finalize(skillId: string, intentId: string): Promise; cancel(skillId: string, intentId: string): Promise; upload(skillId: string, intent: PrivatePublicationView, bytes: Uint8Array): Promise; wait(skillId: string, intentId: string, options?: { timeoutMs?: number; signal?: AbortSignal; }): Promise; }