import type { UseTicketActionsReturn } from './hooks/use-ticket-actions';
export interface HelpCenterCreateFormProps {
    /** The full actions bag from `useTicketActions` — we read
     *  `submitTicket` from it. Passing the whole bag (rather than just
     *  the one method) keeps the wiring shape consistent with other
     *  composition points (e.g. `<HelpCenterCard>` takes individual
     *  action callbacks because the drawer needs four of them; the form
     *  only needs one but the parent already has the bag in scope). */
    actions: UseTicketActionsReturn;
    /** Authoritative session identity, resolved by the parent
     *  (`HelpCenterList`) which already gates rendering on
     *  `identity.isLoading === false`. Passing these in (instead of
     *  calling `useChatIdentity` again here) avoids a subtle race:
     *  `useChatIdentity` is a plain `useState`+`useEffect` hook (no
     *  shared cache), so a second call inside this child would mount
     *  with `user = null` and a stale `sessionEmail = ''`, locking
     *  react-hook-form's `defaultValues.email` to an empty string for
     *  the lifetime of the form — Zod then rejects the submit silently. */
    sessionName: string;
    sessionEmail: string;
    /** Disables every input + button when the support backend (HubSpot)
     *  is down. Wired from the parent's
     *  `useTicketActions.onSupportSystemDown` flag. */
    supportSystemDown?: boolean;
}
/**
 * Loading placeholder that mirrors `<HelpCenterCreateForm>`'s outer
 * dimensions PIXEL-FOR-PIXEL so the page chrome doesn't shift when
 * identity resolves and the real form mounts.
 *
 * Verified against live DOM bounding-rect measurements at the lg
 * breakpoint — every section's top + height matches the real form to
 * the pixel (skeleton wrapper 556px == real wrapper 556px). Each
 * section uses the SAME flex / spacing / padding classes the real
 * form uses, so the gaps propagate identically; only the inner
 * content swaps an `<Input>` / `<Textarea>` / `<Button>` for a
 * same-sized animated `bg-ods-border` bar.
 *
 *   wrapper          → `p-6 md:p-8 lg:p-10` + border + rounded-3xl
 *   heading area     → 56px (`mb-6 md:mb-8` container, h-10 inner bar
 *                       + `mb-3 md:mb-4` = 40 + 16)
 *   subject section  → 79px (`h-[27px]` label + `mb-1` (4px) + h-12
 *                       input = 27 + 4 + 48)
 *   message section  → 127px (`h-[27px]` label + `mb-1` + h-24
 *                       textarea = 27 + 4 + 96)
 *   attachments row  → 28px (h-7 add button + helper label)
 *   footer           → 56px (h-12 button + `pt-2 mt-auto`)
 *   between sections → `space-y-4 md:space-y-6` (16/24px)
 *
 * One non-obvious detail: the real `<ContactForm>` renders 4
 * `<input type="hidden">` registrations BEFORE the visible Subject
 * section (for the hidden name/email/helpCategory/message fields).
 * Tailwind's `space-y-*` rule (`:not([hidden]) ~ :not([hidden])`)
 * counts `type="hidden"` inputs as siblings, so Subject gets a 24px
 * top margin. The skeleton mirrors those 4 hidden inputs exactly so
 * the spacing rule fires identically — without them the whole stack
 * shifts up 24px on every page load.
 */
export declare function HelpCenterCreateFormSkeleton(): import("react").JSX.Element;
export declare function HelpCenterCreateForm({ actions, sessionName, sessionEmail, supportSystemDown, }: HelpCenterCreateFormProps): import("react").JSX.Element;
//# sourceMappingURL=help-center-create-form.d.ts.map