import type { ViteManifest } from './prerender.mjs'; export interface ViteAssetClosure { entryModule: string; executableModules: string[]; modulePreloads: string[]; styles: string[]; viteAssets: string[]; } export interface ArtifactContractFile { path: string; sha256: string; } export interface ArtifactContract extends ViteAssetClosure { schema: 'portfolio-artifact-contract/v1'; buildId: string; publicAssets: string[]; files: ArtifactContractFile[]; } export interface BuildAuthority { schema: 'portfolio-build-authority/v1'; viteManifest: ViteManifest; artifactContract: ArtifactContract; } export function resolveViteAssetClosure(manifest: ViteManifest): ViteAssetClosure; export function parseArtifactContract(input: unknown): ArtifactContract; export function createArtifactContract( closure: ViteAssetClosure, publicManifest: { assets: ReadonlyArray<{ fileName: string }> }, digestByPath: Readonly>, buildId: string, ): ArtifactContract; export function serializeArtifactContract(contract: ArtifactContract): string; export function createBuildAuthority(viteManifest: ViteManifest, artifactContract: ArtifactContract): BuildAuthority; export function parseBuildAuthority(input: unknown): BuildAuthority; export function serializeBuildAuthority(authority: BuildAuthority): string;