import { HsonData } from "../data/hson-data.js"; import type { LiveMapAnyOp, LiveMapAuthority, LiveMapCommit } from "../../types/livemap.types.js"; import type { LocusActionAuthorizer, LocusActionContext, LocusActionDelivery, LocusActionOrigin, LocusActionPayloads, LocusActionTerminalOutcome, LocusActions, LocusClientActionMessage, LocusClientActionResult, LocusConnectionContext, LocusMapValue, LocusReadonlyMap, LocusSchema, LocusSeq, LocusDisposer } from "../../types/locus.types.js"; import type { LocusActionDedupeStore } from "./locus.actions.js"; import type { LocusCommitCausation, LiveTraceContext } from "./locus.trace.js"; type LocusActionHandler = NonNullable>[keyof TActions & string]>; export type LocusValidatedAction = Readonly<{ ok: true; handler: LocusActionHandler; payload: HsonData | undefined; }> | Readonly<{ ok: false; code: "LOCUS_ACTION_UNKNOWN" | "LOCUS_ACTION_UNAVAILABLE" | "LOCUS_ACTION_INVALID"; message: string; }>; /** Internal authority capture installed only by the owning solo Locus runtime. */ export type LocusSoloActionAuthorityInternals = Readonly<{ map: TMap; readonlyMap: LocusReadonlyMap; actions: Partial>; schema: LocusSchema, TActions> | undefined; authorizer: LocusActionAuthorizer | undefined; actionRequests: LocusActionDedupeStore; mutations: Readonly<{ mutate: (mutation: (draft: TMap) => LiveMapCommit, source: "action", causation?: LocusCommitCausation) => Promise>; }>; logicalMapId: string; incarnationId: string; mapMode: LiveMapAuthority["mode"]; currentSeq: () => LocusSeq; nextSeq: () => LocusSeq; headRev: () => number; disposed: () => boolean; acquireActionActivity: () => LocusDisposer; traceStateBoundary: (trace: LiveTraceContext | undefined, parentSpanId: string | undefined, previousRev: number) => void; }>; export type LocusSoloExternalActionAttempt = Readonly<{ message: LocusClientActionMessage; origin: Extract; connection?: LocusConnectionContext; emitEvent?: LocusActionContext["emitEvent"]; trace?: LiveTraceContext; parentSpanId?: string; attachmentCurrent: () => boolean; }>; export type LocusSoloActionAdmissionResult = Readonly<{ response: LocusClientActionResult; kind: "legacy" | "rejected"; }> | Readonly<{ response: LocusClientActionResult; kind: "deduped"; delivery: Exclude; sourceTraceId?: string; }>; export declare function locus_action_public_error_code(code: "LOCUS_ACTION_UNKNOWN" | "LOCUS_ACTION_UNAVAILABLE" | "LOCUS_ACTION_INVALID"): "LOCUS_UNKNOWN_ACTION" | "LOCUS_ACTION_UNAVAILABLE" | "LOCUS_SCHEMA_INVALID_PAYLOAD"; export declare function resolve_locus_action_for_execution(authority: LocusSoloActionAuthorityInternals, message: LocusClientActionMessage, trace?: LiveTraceContext, parentSpanId?: string): LocusValidatedAction; export declare function make_locus_action_response(id: string, outcome: LocusActionTerminalOutcome, requestId?: string, delivery?: LocusActionDelivery, attemptId?: string): LocusClientActionResult; export declare function execute_locus_action_handler(input: Readonly<{ authority: Pick, "readonlyMap" | "mutations" | "currentSeq" | "nextSeq" | "headRev" | "traceStateBoundary">; message: LocusClientActionMessage; handler: LocusActionHandler; payload: HsonData | undefined; origin: LocusActionOrigin; emitEvent: LocusActionContext["emitEvent"]; trace?: LiveTraceContext; parentSpanId?: string; causation?: LocusCommitCausation; }>): Promise; /** Authority-owned admission for one decoded solo external action attempt. */ export declare function admit_locus_solo_external_action(authority: LocusSoloActionAuthorityInternals, attempt: LocusSoloExternalActionAttempt): Promise; export {}; //# sourceMappingURL=locus.action-admission.d.ts.map