import type { SurfaceField } from '../resource/SurfaceFields'; import type { DataResourceSurface, WorkflowOwnedSubjectCreate } from 'openxiangda-contracts/browser'; type JsonObject = Record; /** Presentation rules supplied by application code; never an authorization grant. */ export interface WorkflowSubmissionFieldState { visible?: boolean; /** Adds a conditional requirement; false cannot remove the original requirement. */ required?: boolean; /** Canonical value to submit instead of a hidden, previously entered value. */ hiddenValue?: unknown; } export type WorkflowSubmissionFieldStates = Readonly>; export type WorkflowSubmissionSubtableFieldStates = Readonly>>>>; /** Display rules never extend the sealed named child closure or rewrite row values. */ export declare function workflowSubmissionSubtableStates(parent: DataResourceSurface, grant: WorkflowOwnedSubjectCreate | undefined, states?: WorkflowSubmissionSubtableFieldStates): WorkflowSubmissionSubtableFieldStates; export declare function workflowSubmissionSubtableFields(fields: readonly SurfaceField[], states?: WorkflowSubmissionSubtableFieldStates[string]): SurfaceField[]; /** onFinish contains mounted controls only; retained values still obey the launch allowlist. */ export declare function workflowSubmissionFormInput(fields: readonly SurfaceField[], stored: Readonly>, submitted: Readonly>): { [k: string]: unknown; }; export declare function workflowSubmissionFormProjection(fields: readonly SurfaceField[], values: Readonly>, states?: WorkflowSubmissionFieldStates): { fields: SurfaceField[]; values: Record; hiddenValues: Record; }; /** A late or repeated prefill cannot replace a field that the user already edited. */ export declare function workflowSubmissionPrefill(fields: readonly SurfaceField[], values: Readonly>, applied: Set, touched: (key: string) => boolean): Record; /** User input only; a presentation patch never expands the launch contract. */ export declare function workflowSubmissionValueLinkage(fields: readonly SurfaceField[], changed: Readonly, values: Readonly, linkage?: (changed: Readonly, values: Readonly) => JsonObject): JsonObject; export {}; //# sourceMappingURL=workflow-submission-form.d.ts.map