import { FormEngineTranslationKey } from './i18n/keys.js'; import { S as SensitiveDataFinding } from './analytics-CKp_MFX6.js'; import './lifecycle.js'; interface FormSubmissionSerializedError { readonly code: "VALIDATION_FAILED" | "PII_CONFIRMATION_REQUIRED" | "SUBMISSION_BLOCKED" | "FORM_CLOSED" | "STORAGE_ERROR"; readonly messageKey: FormEngineTranslationKey | string; readonly messageParams?: Readonly>; readonly fieldErrors?: Readonly>; readonly formErrors?: readonly string[]; readonly piiFindings?: readonly SensitiveDataFinding[]; readonly piiWarningAcknowledged?: boolean; } /** JSON payload carried by a tRPC error's `data` or `shape.data` property. */ interface TrpcFormSubmissionErrorData extends FormSubmissionSerializedError { readonly source: "form-engine"; } interface TrpcSubmissionErrorAdapter { readonly serialize: (error: FormSubmissionError) => TrpcFormSubmissionErrorData; readonly deserialize: (error: unknown) => FormSubmissionError | undefined; } type TrpcProcedureType = "query" | "mutation" | "subscription"; /** Structural equivalent of tRPC's ErrorFormatter input; no `@trpc/server` dependency is required. */ interface TrpcSubmissionErrorFormatterOptions = Record> { readonly error: unknown; readonly type: TrpcProcedureType | undefined; readonly path: string | undefined; readonly input: unknown; readonly ctx: unknown; readonly shape: TShape & { readonly data?: unknown; }; } type TrpcSubmissionErrorShape> = Omit & { readonly data: Partial & Omit : Record, keyof TrpcFormSubmissionErrorData>; }; type TrpcSubmissionErrorFormatter = Record> = (options: TrpcSubmissionErrorFormatterOptions) => TrpcSubmissionErrorShape; /** A ready-to-use server/client tRPC boundary for FormSubmissionError. */ interface TrpcSubmissionErrorIntegration { readonly errorFormatter: TrpcSubmissionErrorFormatter; readonly deserialize: (error: unknown) => FormSubmissionError | undefined; readonly getData: (error: unknown) => TrpcFormSubmissionErrorData | undefined; } declare function isFormSubmissionSerializedError(value: unknown): value is FormSubmissionSerializedError; /** Error with a stable, JSON-serializable payload for RPC boundaries. */ declare class FormSubmissionError extends Error { readonly payload: FormSubmissionSerializedError; constructor(payload: FormSubmissionSerializedError); toJSON(): FormSubmissionSerializedError; } declare const serializeSubmissionError: (error: FormSubmissionError) => FormSubmissionSerializedError; declare const deserializeSubmissionError: (json: FormSubmissionSerializedError) => FormSubmissionError; /** Converts a FormSubmissionError into data safe to return from a tRPC procedure. */ declare function serializeSubmissionErrorForTrpc(error: FormSubmissionError): TrpcFormSubmissionErrorData; /** Restores a FormSubmissionError from a tRPC error, including `data` and `shape.data`. */ declare function deserializeSubmissionErrorFromTrpc(error: unknown): FormSubmissionError | undefined; /** Returns the typed Form Engine payload from a tRPC error shape without an application cast. */ declare function getTrpcSubmissionErrorData(error: unknown): TrpcFormSubmissionErrorData | undefined; /** Standard transport adapter for tRPC server/client boundaries. */ declare const trpcSubmissionErrorAdapter: TrpcSubmissionErrorAdapter; declare const createTrpcSubmissionErrorAdapter: () => TrpcSubmissionErrorAdapter; /** * Creates the tRPC integration used by both a server `errorFormatter` and a client error boundary. * The formatter preserves tRPC's existing `shape.data` values and adds the typed submission payload * only when the thrown error is a FormSubmissionError. */ declare function createTrpcSubmissionErrorIntegration(): TrpcSubmissionErrorIntegration; /** Server-side convenience helper for tRPC's `errorFormatter` option. */ declare const createTrpcSubmissionErrorFormatter: () => TrpcSubmissionErrorFormatter>; export { FormSubmissionError, type FormSubmissionSerializedError, type TrpcFormSubmissionErrorData, type TrpcProcedureType, type TrpcSubmissionErrorAdapter, type TrpcSubmissionErrorFormatter, type TrpcSubmissionErrorFormatterOptions, type TrpcSubmissionErrorIntegration, type TrpcSubmissionErrorShape, createTrpcSubmissionErrorAdapter, createTrpcSubmissionErrorFormatter, createTrpcSubmissionErrorIntegration, deserializeSubmissionError, deserializeSubmissionErrorFromTrpc, getTrpcSubmissionErrorData, isFormSubmissionSerializedError, serializeSubmissionError, serializeSubmissionErrorForTrpc, trpcSubmissionErrorAdapter };