import type { AccessGrant } from "@opengeni/contracts"; import { type AccessDeps, type EditableArtifactActor, type EditableArtifactApplicationPort, type EditableArtifactDurableExportService, type EditableArtifactOfficeImportPort, type EditableArtifactModality } from "@opengeni/core"; import type { Hono } from "hono"; export declare const EDITABLE_ARTIFACT_HTTP_REQUEST_MAX_BYTES: number; export declare const EDITABLE_ARTIFACT_EXPORT_REQUEST_MAX_BYTES: number; export declare const EDITABLE_ARTIFACT_LIVE_TICKET_REQUEST_MAX_BYTES: number; export type EditableArtifactRouteScope = Readonly<{ accountId: string; workspaceId: string; }>; export type EditableArtifactRouteActor = EditableArtifactActor; /** * Authenticated transport context. Until a distinct editable-artifact * capability is introduced, the existing workspace `artifacts:read` and * `artifacts:publish` capabilities intentionally gate read and write here too; * the application still performs the durable per-artifact authorization. */ export type EditableArtifactRouteAuthority = Readonly<{ scope: EditableArtifactRouteScope; actor: EditableArtifactRouteActor; }>; export type MintEditableArtifactLiveTicketOutput = Readonly<{ artifactId: string; modality: EditableArtifactModality; replicaId: string; token: string; expiresAt: string; protocolVersion: number; }>; export type EditableArtifactRouteDependencies = AccessDeps & Readonly<{ editableArtifacts?: EditableArtifactApplicationPort; editableArtifactExports?: EditableArtifactDurableExportService; editableArtifactOfficeImports?: EditableArtifactOfficeImportPort; /** Test/embedding seam; returned ids are still authorized one by one. */ editableArtifactSessionArtifactIds?: (scope: EditableArtifactRouteScope, sourceSessionId: string, limit: number) => Promise; }>; export type EditableArtifactApplicationErrorCode = "not_found" | "forbidden" | "conflict" | "unsupported_protocol" | "limit_exceeded" | "unavailable"; /** A bounded, deliberate failure emitted by the injected application boundary. */ export declare class EditableArtifactApplicationError extends Error { readonly code: EditableArtifactApplicationErrorCode; constructor(code: EditableArtifactApplicationErrorCode); } export declare function registerEditableArtifactRoutes(app: Hono, deps: EditableArtifactRouteDependencies): void; export declare function editableArtifactActorForGrant(grant: AccessGrant, rawReplicaId: string): EditableArtifactRouteActor; export declare function isInvisibleListCandidate(error: unknown): boolean; export declare function editableArtifactHttpError(error: unknown): unknown;