import type * as Pinnacle from "../index.mjs"; /** * The submitted answers plus a resolved snapshot of each form field. */ export interface FormSubmissionEventSubmission { /** Submission id (starts with `fsub_`). Uniquely identifies this submission. */ id: string; /** Sender identifier that originally sent this form — RCS agent id (`agent_*`) or E.164 phone number. */ from: string; /** Recipient phone number (E.164) the form was delivered to. Null for URL-only sends where `to` was omitted at send time. */ to: string | null; /** * Submitted answers keyed by field `key`. * * Each value's shape depends on the field type: * - `text`, `email`, `phone`, `url`, `textarea`, `select`, `radio` → string * - `number` → number * - `checkbox` (single) → boolean * - `checkbox` (multi), `multiselect` → array of strings * - Skipped optional field → null */ data: Record; /** Resolved snapshot of the form definition paired with the submitted value — ready to render without a separate `get_form` call. */ fields: Pinnacle.FormSubmittedField[]; /** IP address the submission was POSTed from. Null if unavailable. */ ip_address: string | null; /** User-Agent header of the browser that submitted the form. Null if unavailable. */ user_agent: string | null; /** ISO 8601 timestamp of when the submission was completed. Updated on each edit for `can_update: true` forms. */ submitted_at: string; }