import type { Response } from 'express'; import type { INodeExecutionData, IDataObject, IWebhookFunctions, FormFieldsParameter, NodeTypeAndVersion } from 'n8n-workflow'; import type { FormTriggerData } from '../interfaces'; export declare function sanitizeHtml(text: string): string; /** * Replaces `\n` strings with actual newline characters. * Also replaces `\\n` strings with `\n` string * @param text - The text to replace newlines in * @returns Updated text */ export declare const handleNewlines: (text: string) => string; export declare const prepareFormFields: (fields: FormFieldsParameter) => { fieldLabel: string; elementName?: string; fieldType?: string; requiredField?: boolean; fieldOptions?: { values: Array<{ option: string; }>; }; multiselect?: boolean; multipleFiles?: boolean; acceptFileTypes?: string; formatDate?: string; html?: string; placeholder?: string; defaultValue?: string; fieldName?: string; fieldValue?: string; limitSelection?: "exact" | "range" | "unlimited"; numberOfSelections?: number; minSelections?: number; maxSelections?: number; }[]; export declare function sanitizeCustomCss(css: string | undefined): string | undefined; /** * Validates that a URL uses a safe scheme. * Returns the normalized URL if valid, or null if invalid. */ export declare function validateSafeRedirectUrl(url: string | undefined): string | null; export declare function createDescriptionMetadata(description: string): string; export declare function prepareFormData({ formTitle, formDescription, formSubmittedHeader, formSubmittedText, redirectUrl, formFields, testRun, query, instanceId, useResponseData, appendAttribution, buttonLabel, customCss, nodeVersion, authToken, }: { formTitle: string; formDescription: string; formSubmittedText: string | undefined; redirectUrl: string | undefined; formFields: FormFieldsParameter; testRun: boolean; query: IDataObject; instanceId?: string; useResponseData?: boolean; appendAttribution?: boolean; buttonLabel?: string; formSubmittedHeader?: string; customCss?: string; nodeVersion?: number; authToken?: string; }): FormTriggerData; export declare const validateResponseModeConfiguration: (context: IWebhookFunctions) => void; export declare function addFormResponseDataToReturnItem(returnItem: INodeExecutionData, formFields: FormFieldsParameter, bodyData: IDataObject, nodeVersion?: number): void; export declare function prepareFormReturnItem(context: IWebhookFunctions, formFields: FormFieldsParameter, mode: 'test' | 'production', useWorkflowTimezone?: boolean): Promise; export declare function renderForm({ context, res, formTitle, formDescription, formFields, responseMode, mode, formSubmittedText, redirectUrl, appendAttribution, buttonLabel, customCss, authToken, }: { context: IWebhookFunctions; res: Response; formTitle: string; formDescription: string; formFields: FormFieldsParameter; responseMode: string; mode: 'test' | 'production'; formSubmittedText?: string; redirectUrl?: string; appendAttribution?: boolean; buttonLabel?: string; customCss?: string; authToken?: string; }): void; export declare const isFormConnected: (nodes: NodeTypeAndVersion[]) => boolean; export declare function formWebhook(context: IWebhookFunctions, authProperty?: string): Promise<{ noWebhookResponse: boolean; webhookResponse?: undefined; workflowData?: undefined; } | { webhookResponse: { status: number; }; workflowData: INodeExecutionData[][]; noWebhookResponse?: undefined; }>; export declare function resolveRawData(context: IWebhookFunctions, rawData: string): string; type ParseFormFieldsOptions = { defineForm: 'json' | 'fields'; fieldsParameterName: string; mode?: 'test' | 'production'; }; export declare function parseFormFields(context: IWebhookFunctions, options: ParseFormFieldsOptions): FormFieldsParameter; export {}; //# sourceMappingURL=utils.d.ts.map