import { type JsonValue } from "../state/json.js"; import type { ActorType, MutationActor } from "../state/mutation.js"; import { type JsonPatch } from "./json-patch.js"; import type { ComputeNodeDefinition, MaybePromise, WorkflowValueParser } from "./types.js"; export type WorkflowSettingsPermission = "read" | "add" | "remove" | "replace"; export type WorkflowSettingsPathPermissions = Partial>; export type WorkflowSettingsPathRule = { path: string; permissions: WorkflowSettingsPathPermissions; }; export type WorkflowSettingsChangeContext = { before: TSettings; after: TSettings; actor: MutationActor; source: string; patch: JsonPatch; }; export type WorkflowSettingsDefinition = { initial: TSettings | ((input: TInput) => MaybePromise); parse: WorkflowValueParser; paths: readonly WorkflowSettingsPathRule[]; description?: string; validateChange?: (context: WorkflowSettingsChangeContext) => MaybePromise; }; export type WorkflowSettingsOptions = { initial: TSettings | ((input: TInput) => MaybePromise); parse: WorkflowValueParser; paths: readonly WorkflowSettingsPathRule[]; description?: string; validateChange?: (context: WorkflowSettingsChangeContext) => MaybePromise; }; export type AppliedWorkflowSettings = { patch: JsonPatch; settings: TSettings; json: JsonValue; }; export type InitialWorkflowSettingsScope = { mountPath: string; invocation: number; settings: JsonValue; }; export type WorkflowSettingsScopeRecord = { scopeId: string; originRunId: string; activeRunId: string; mountPath: string; invocation: number; changeNumber: number; settings: JsonValue; settingsHash: string; createdAt: string; updatedAt: string; }; export type WorkflowSettingsChangeRequest = { runId: string; scopeId: string; requestId: string; expectedChangeNumber?: number; actor: MutationActor; source: string; patch: unknown; }; export type WorkflowSettingsChangeRecord = { changeId: string; scopeId: string; requestId: string; changeNumber: number; actor: MutationActor; source: string; patch: JsonPatch; beforeHash: string; afterHash: string; acceptedAt: string; }; export type WorkflowSettingsChangeResult = { scope: WorkflowSettingsScopeRecord; change: WorkflowSettingsChangeRecord; adopted: boolean; }; export type WorkflowFollowUpState = "queued" | "removed" | "cancelled"; export type WorkflowFollowUpRecord = { followUpId: string; runId: string; requestId: string; order: number; targetSessionId: string; actor: MutationActor; source: string; prompt: string; state: WorkflowFollowUpState; reason?: string; createdAt: string; updatedAt: string; }; export type WorkflowFollowUpQueueRecord = { runId: string; originSessionId?: string; followUps: WorkflowFollowUpRecord[]; }; export type WorkflowQueueFollowUpRequest = { runId: string; requestId: string; targetSessionId: string; actor: MutationActor; source: string; prompt: string; }; export type WorkflowRemoveFollowUpRequest = { runId: string; followUpId: string; actor: MutationActor; source: string; }; export declare function workflowSettingsScopeId(originRunId: string, mountPath: string, invocation: number): string; export declare function workflowSettings(options: WorkflowSettingsOptions): WorkflowSettingsDefinition; export declare function allowSettingsPath(path: string, permissions: WorkflowSettingsPathPermissions): WorkflowSettingsPathRule; export declare function settingsRoute(definition: Omit): ComputeNodeDefinition; export declare function resolveInitialWorkflowSettings(definition: WorkflowSettingsDefinition, input: TInput): Promise>; export declare function parseWorkflowSettingsValue(definition: WorkflowSettingsDefinition, raw: unknown): Promise>; export declare function applyWorkflowSettingsPatch(definition: WorkflowSettingsDefinition, before: JsonValue, patchValue: unknown, actor: MutationActor, source: string): Promise>; export declare function settingsRuleForPath(rules: readonly WorkflowSettingsPathRule[], pointer: string): WorkflowSettingsPathRule | undefined;