import type { BufferRange, SyntaxSpan, WarmProjectionBasis } from "./structured-buffer-model.js"; import type { ResolvedAuthorityContext } from "./projection-profile-resolver.js"; export type JsonObject = Readonly>; export type EdictProjectionEmit = "syntax" | "diagnostics" | "core" | "targetIr" | "receipt" | "digests"; export type EdictWriteClass = "none" | "read" | "create" | "ensure" | "append" | "replace" | "delete"; export interface EdictProjectionOperationProfileFact { readonly source: string; readonly core: string; readonly allowedWriteClasses?: readonly EdictWriteClass[] | undefined; } export interface EdictProjectionEffectWriteClassFact { readonly effect: string; readonly writeClass: EdictWriteClass; } export interface EdictProjectionBudget { readonly maxSteps: number; readonly maxAllocatedBytes: number; readonly maxOutputBytes: number; } export interface EdictProjectionBudgetFact { readonly source: string; readonly budget: EdictProjectionBudget; } export interface EdictProjectionCompilerContext { readonly operationProfiles?: readonly EdictProjectionOperationProfileFact[] | undefined; readonly effectWriteClasses?: readonly EdictProjectionEffectWriteClassFact[] | undefined; readonly budgets?: readonly EdictProjectionBudgetFact[] | undefined; } export interface EdictProjectionTargetEffectLowering { readonly effect: string; readonly targetIntrinsic: string; } export interface EdictProjectionTargetSettings { readonly coordinate: string; readonly profileDigest: string; readonly irDomain: string; readonly operationProfiles?: readonly string[] | undefined; readonly obstructionCoordinates?: readonly string[] | undefined; readonly effectLowerings?: readonly EdictProjectionTargetEffectLowering[] | undefined; } export interface EdictProjectionRequest { readonly name: string; readonly content: string; readonly basis?: WarmProjectionBasis | null | undefined; readonly emit: readonly EdictProjectionEmit[]; readonly authority?: ResolvedAuthorityContext | undefined; readonly compilerContext?: EdictProjectionCompilerContext | undefined; readonly target?: EdictProjectionTargetSettings | undefined; } export interface EdictProjectionDiagnostics { readonly items: readonly EdictDiagnosticItem[]; } export interface EdictDiagnosticItem { readonly stage: string; readonly kind: string; readonly severity: "error"; readonly range: BufferRange; readonly message?: string | undefined; } export type EdictProjectionSlot = { readonly state: "not_requested"; } | { readonly state: "available"; readonly value: TValue; } | { readonly state: "blocked"; readonly reason: readonly JsonObject[]; } | { readonly state: "failed"; readonly error: EdictProjectionFailure; }; export interface EdictSyntaxProjection { readonly spans: readonly SyntaxSpan[]; } export interface EdictCoreProjection { readonly digest: string; readonly review: JsonObject; } export interface EdictTargetIrProjection { readonly domain: string; readonly target: { readonly coordinate: string; readonly digest: string; }; readonly digest: string; readonly review: JsonObject; } export interface EdictEchoReceiptProjection { readonly outcomeKind: string; readonly targetIrDigest: string; readonly targetIrDomain?: string | undefined; readonly reasonKind?: string | undefined; readonly reasonPayload?: JsonObject | undefined; readonly receipt: JsonObject; } export interface EdictProjectionFailure { readonly kind: string; readonly message?: string | undefined; readonly failures?: readonly JsonObject[] | undefined; } export interface EdictProjectionStatus { readonly status: "ok" | "error"; readonly checked: number; readonly errors: number; readonly exitCode: 0 | 1 | 2; } export interface EdictProjectionBundle { readonly language: "edict"; readonly name: string; readonly basis: WarmProjectionBasis | null; readonly syntax: EdictProjectionSlot; readonly diagnostics: EdictProjectionDiagnostics; readonly core: EdictProjectionSlot; readonly targetIr: EdictProjectionSlot; readonly echoReceipt?: EdictProjectionSlot | undefined; readonly status: EdictProjectionStatus; } export interface EdictProjectionProvider { project(input: EdictProjectionRequest): EdictProjectionBundle; } export declare class EdictProjectionError extends Error { constructor(message: string); } export declare function isEdictPath(filePath: string): boolean; export declare function projectEdictJsonlRecords(request: EdictProjectionRequest, records: readonly unknown[]): EdictProjectionBundle; //# sourceMappingURL=edict-projection.d.ts.map