type PageSpeedFormMethod = "post" | "get" | "put" | "patch";
type PageSpeedFormSubmissionFormat = "json" | "rails";
interface PageSpeedFormConfig {
    /**
     * API endpoint used for submission (also applied to form action).
     */
    endpoint?: string;
    /**
     * HTTP method for submission.
     * @default "post"
     */
    method?: PageSpeedFormMethod;
    /**
     * Submission format.
     * Defaults to "rails" when apiKey is present, otherwise "json".
     */
    format?: PageSpeedFormSubmissionFormat;
    /**
     * Additional headers for the submission request.
     */
    headers?: Record<string, string>;
    /**
     * Static values merged into the payload (e.g. subject, content).
     */
    values?: Record<string, unknown>;
    /**
     * Rails API key (required for rails format).
     */
    apiKey?: string;
    /**
     * Rails contact category token.
     */
    contactCategoryToken?: string;
    /**
     * Rails location ID.
     */
    locationId?: string;
    /**
     * Rails website ID.
     */
    websiteId?: string;
    /**
     * Rails website form assignment ID.
     */
    websiteFormAssignmentId?: string;
    /**
     * Rails visitor IP address override.
     */
    visitorIpAddress?: string;
    /**
     * Reset form values after a successful submission.
     * @default true
     */
    resetOnSuccess?: boolean;
}

export type { PageSpeedFormConfig as P };
