import { type AccessGrant } from "@opengeni/contracts"; import type { ApiRouteDeps, ObjectStorageDependency } from "@opengeni/core"; import { prepareWorkspaceArtifactContent, type PreparedWorkspaceArtifactContent } from "./workspace-artifact-content.js"; type Storage = NonNullable; export declare const MAX_SITE_SOURCE_BYTES: number; export declare function validateSiteSource(storage: Storage, key: string, sizeBytes: number): Promise; export declare function prepareWorkspaceArtifactUpload(deps: ApiRouteDeps, grant: AccessGrant): Promise<{ uploadId: string; html: { putUrl: string; requiredHeaders: Record; }; source: { putUrl: string; requiredHeaders: Record; }; expiresAt: string; }>; /** Provider version-pinned reads, without Site SHA checks or full HTML buffering. */ export declare function readArtifactObject(storage: Storage, key: string, expectedHead?: Awaited>>): AsyncGenerator, void, unknown>; type Input = Partial[2]> & { uploadId?: string; }; export declare function prepareWorkspaceArtifactPublication(deps: ApiRouteDeps, grant: AccessGrant, input: Input): Promise; export declare function workspaceArtifactDownloads(storage: Storage, ref: { contentKey: string; sourceKey: string | null; }, audience: "sandbox" | "public"): Promise<{ html: { url: string; expiresAt: Date; }; source: { url: string; expiresAt: Date; format: string; } | null; }>; export {};