import { type V1IssuerRecord, type V1RegistryEvent, type V1VerificationReport } from "./v1.js"; export { canonicalize, decodeBase64Url, encodeBase64Url, sha256Hex, toBytes, } from "./encoding.js"; export declare const OPEN_PRINT_VERSION = "0.1"; export type OpenPrintSchemaVersion = typeof OPEN_PRINT_VERSION; export type OpenPrintSourceReference = { gitCommit: string; manifestDigest: string; }; export type ArtworkRecord = { schemaVersion: OpenPrintSchemaVersion; id: string; title: string; artist: { name: string; identifier: string; }; source: { repository: string; commit: string; }; files: Array<{ path: string; mediaType: string; sha256: string; }>; }; export type EditionRecord = { schemaVersion: OpenPrintSchemaVersion; id: string; workId: string; issuer: { id: string; name: string; }; availability: { mode: "free" | "open" | "paid"; supply?: number | null; }; license: { id: string; summary: string; }; source: OpenPrintSourceReference; status: "draft" | "active" | "closed" | "cancelled" | "superseded"; }; export type CertificatePayload = { schema: string; schemaVersion: string; id: string; editionId: string; workId: string; artworkTitle: string; collector: { displayName: string | null; }; issuer: { id: string; name: string; }; issuedAt: string; sequence: number; license: { id: string; summary: string; }; source: OpenPrintSourceReference; notice: string; }; export type DeepReadonly = T extends (...args: never[]) => unknown ? T : T extends readonly (infer Item)[] ? readonly DeepReadonly[] : T extends object ? { readonly [Key in keyof T]: DeepReadonly; } : T; type SealedCertificate = CertificatePayload & { integrity: { algorithm: "SHA-256"; digest: string; scope: "certificate payload"; }; }; export type Certificate = DeepReadonly; export type CertificateIssuanceRecord = DeepReadonly<{ schemaVersion: OpenPrintSchemaVersion; type: "issued"; certificateId: string; editionId: string; workId: string; sequence: number; fingerprint: string; recordedAt: string; }>; export type OpenPrintCertificateGeneration = "0.1" | "1.0" | "unknown"; export type OpenPrintCompatibleVerificationReport = DeepReadonly<{ generation: OpenPrintCertificateGeneration; status: "valid" | "invalid" | "untrusted" | "cancelled" | "superseded"; trustLevel: "integrity-only" | "issuer-signed" | "untrusted" | "unknown"; message: string; v1Report?: V1VerificationReport; }>; export type HostedAssetRecord = { key: string; url: string; filename: string; mediaType: string; size: number; sha256: string; workId: string; }; export declare function sealCertificate(payload: CertificatePayload): Promise; export declare function verifyCertificateIntegrity(certificate: Certificate): Promise; export declare function detectOpenPrintCertificateGeneration(value: unknown): OpenPrintCertificateGeneration; export declare function verifyCompatibleOpenPrintCertificate(value: unknown, options?: { issuer?: V1IssuerRecord; registry?: readonly V1RegistryEvent[]; }): Promise; export declare function getCertificateFingerprint(certificate: Certificate): `sha256:${string}`; export declare function findCertificateIssuanceConflict(certificate: Certificate, records: readonly CertificateIssuanceRecord[]): CertificateIssuanceRecord | null; export declare function appendCertificateIssuance(certificate: Certificate, records: readonly CertificateIssuanceRecord[], recordedAt?: string): Promise; export declare function normalizeOpenPrintId(value: string): string; export declare function normalizeAssetFilename(value: string): string; export declare function createContentAddressedAssetKey(workId: string, filename: string, digest: string): string; export * from "./v1.js"; export * from "./policy.js"; export * from "./validation.js"; export * from "./checkpoint.js"; export * from "./archive.js"; //# sourceMappingURL=index.d.ts.map