import { type ReqRefDefaults, type Request, type ResponseToolkit } from '@hapi/hapi'; import { type FormPayload } from '~/src/server/plugins/engine/types.js'; export interface FormQuery extends Partial> { /** * Allow preview URL direct access without relevant page checks */ force?: string; /** * Redirect location after 'continue' form action */ returnUrl?: string; } export interface FormParams extends Partial> { path: string; slug: string; state?: FormStatus; } export interface FormRequestRefs extends Omit { Params: FormParams; Payload: object | undefined; Query: FormQuery; } export interface FormRequestPayloadRefs extends FormRequestRefs { Payload: FormPayload; } export type FormRequest = Request; export type FormRequestPayload = Request; export type FormResponseToolkit = Pick; export declare enum FormAction { Continue = "continue", Validate = "validate", Delete = "delete", AddAnother = "add-another", Send = "send", SaveAndExit = "save-and-exit", External = "external" } export declare enum FormStatus { Draft = "draft", Live = "live" } export declare enum ExternalActions { PostcodeLookup = "postcode-lookup", AnotherExternalAction = "another-external-action" }