import { type SchemaManifest } from "@aotter/mantle-spec"; import type { AnyHandler, HandlerContext } from "./domain/model/HandlerContext.js"; import type { PreparedMantleRevision } from "./domain/model/PreparedMantleRevision.js"; import { type Clock } from "./domain/port/Clock.js"; import type { DeferredHookDispatcher } from "./domain/port/DeferredHookDispatcher.js"; import type { EntryReader } from "./domain/port/EntryReader.js"; import type { MediaAsset, MediaStorage } from "./domain/port/MediaStorage.js"; import { type IdGenerator } from "./domain/port/IdGenerator.js"; import type { MantleStorageAdapter } from "./domain/port/MantleStorageAdapter.js"; import type { LocalePolicyReader, SiteConfigRepository } from "./domain/port/SiteConfigRepository.js"; import type { ViewQueryOptions } from "./domain/port/ViewQueryExecutor.js"; import type { RuntimePlan } from "./domain/service/RuntimePlanCompiler.js"; import { ArchiveUseCase, CreateDraftUseCase, DeleteEntryUseCase, GetEntryUseCase, ListEntriesUseCase, RequestPublishUseCase, UnpublishUseCase, UpdateDraftUseCase } from "./usecase/content/index.js"; import type { RunDeferredHookRequest } from "./usecase/dto/lifecycle/index.js"; import type { InvokeProcedureResponse } from "./usecase/dto/procedure/index.js"; import { CommitMediaUploadUseCase, CreateMediaUploadUseCase, DeleteMediaAssetUseCase, GetMediaAssetUseCase, ListMediaAssetsUseCase, UpdateMediaAssetUseCase } from "./usecase/media/index.js"; import { type ExecuteViewResponse } from "./usecase/view/index.js"; import { UpdateSiteSettingsUseCase } from "./usecase/site/index.js"; import { type DeploymentPreparationOptions } from "./usecase/boot/ValidateBootUseCase.js"; export interface MantleRuntimePorts { readonly localePolicy?: LocalePolicyReader; readonly deferredHookDispatcher?: DeferredHookDispatcher; readonly clock?: Clock; readonly idgen?: IdGenerator; /** Host callback after a successful publishing-content mutation. */ readonly onPublishingContentChange?: () => Promise; readonly mediaStorage?: MediaStorage; readonly mediaAllowSvg?: boolean; } export interface CreateMantleRuntimeArgs { readonly prepared: PreparedMantleRevision; readonly ports?: MantleRuntimePorts; readonly handlers?: Readonly>; } export interface BootMantleRuntimeArgs { readonly plan: RuntimePlan; readonly storage: MantleStorageAdapter; readonly ports?: MantleRuntimePorts; readonly handlers?: Readonly>; readonly deployment?: Omit; } export interface InvokeMantleProcedureRequest { readonly procedure: string; readonly input: unknown; readonly ctx: HandlerContext; readonly pathPrefix?: string; } export interface ExecuteMantleViewRequest { readonly view: string; readonly options?: ViewQueryOptions; readonly ctx?: HandlerContext; readonly pathPrefix?: string; } export interface InvokeMantleTriggerRequest { readonly trigger: string; readonly input: unknown; readonly ctx: HandlerContext; readonly pathPrefix?: string; } /** Programmatic Core bound to one prepared semantic revision. */ export interface MantleRuntime { readonly revision: string; /** Linked schemas needed by optional projections such as Mantle Web. */ readonly schemas: ReadonlyMap; readonly entries: EntryReader; readonly siteConfig: SiteConfigRepository | null; readonly updateSiteSettings: UpdateSiteSettingsUseCase | null; readonly media: MantleMedia | null; readonly createDraft: CreateDraftUseCase; readonly updateDraft: UpdateDraftUseCase; readonly getEntry: GetEntryUseCase; readonly listEntries: ListEntriesUseCase; readonly requestPublish: RequestPublishUseCase; readonly unpublish: UnpublishUseCase; readonly archive: ArchiveUseCase; readonly deleteEntry: DeleteEntryUseCase; invokeProcedure(request: InvokeMantleProcedureRequest): Promise>; executeView>(request: ExecuteMantleViewRequest): Promise>; invokeTrigger(request: InvokeMantleTriggerRequest): Promise>; runDeferredHook(request: RunDeferredHookRequest): Promise; } export interface MantleMedia { readonly storage: MediaStorage; readonly createUpload: CreateMediaUploadUseCase; readonly commitUpload: CommitMediaUploadUseCase; readonly listAssets: ListMediaAssetsUseCase; readonly getAsset: GetMediaAssetUseCase; readonly updateAsset: UpdateMediaAssetUseCase; readonly deleteAsset: DeleteMediaAssetUseCase; resolve(id: string): Promise; resolveMany(ids: readonly string[]): Promise>; } /** Prepare and bind once. Hosts remain responsible for caching and retry policy. */ export declare function bootMantleRuntime(args: BootMantleRuntimeArgs): Promise; export declare function createMantleRuntime(args: CreateMantleRuntimeArgs): MantleRuntime; //# sourceMappingURL=MantleRuntime.d.ts.map