import { Block, CollectionConfig, Field } from 'payload/types'; export declare type BlockConfig = { block: Block; validate?: (value: unknown) => boolean | string; }; export declare function isValidBlockConfig(blockConfig: BlockConfig | string): blockConfig is BlockConfig; export declare type FieldValues = { [key: string]: string | number | boolean | null | undefined; }; export declare type PaymentFieldConfig = Partial & { paymentProcessor: Partial; }; export declare type FieldConfig = Partial | PaymentFieldConfig; export declare type FieldsConfig = { select?: boolean | FieldConfig; text?: boolean | FieldConfig; email?: boolean | FieldConfig; state?: boolean | FieldConfig; country?: boolean | FieldConfig; checkbox?: boolean | FieldConfig; number?: boolean | FieldConfig; message?: boolean | FieldConfig; payment?: boolean | FieldConfig; }; export declare type BeforeEmail = (emails: FormattedEmail[]) => FormattedEmail[] | Promise; export declare type HandlePayment = (data: any) => void; export declare type FormConfig = { fields?: FieldsConfig; formSubmissionOverrides?: Partial; formOverrides?: Partial; beforeEmail?: BeforeEmail; handlePayment?: HandlePayment; redirectRelationships?: string[]; }; export declare type TextField = { blockType: 'text'; blockName?: string; width?: string; name: string; label?: string; defaultValue?: string; required?: boolean; }; export declare type SelectFieldOption = { label: string; value: string; }; export declare type SelectField = { blockType: 'select'; blockName?: string; width?: string; name: string; label?: string; defaultValue?: string; required?: boolean; options: SelectFieldOption[]; }; export declare type PriceCondition = { fieldToUse: string; condition: 'equals' | 'notEquals' | 'hasValue'; valueForCondition: string; operator: 'add' | 'subtract' | 'multiply' | 'divide'; valueType: 'static' | 'valueOfField'; valueForOperator: string | number; }; export declare type PaymentField = { blockType: 'payment'; blockName?: string; width?: string; name: string; label?: string; defaultValue?: string; required?: boolean; paymentProcessor: string; basePrice: number; priceConditions: PriceCondition[]; }; export declare type EmailField = { blockType: 'email'; blockName?: string; width?: string; name: string; label?: string; defaultValue?: string; required?: boolean; }; export declare type StateField = { blockType: 'state'; blockName?: string; width?: string; name: string; label?: string; defaultValue?: string; required?: boolean; }; export declare type CountryField = { blockType: 'country'; blockName?: string; width?: string; name: string; label?: string; defaultValue?: string; required?: boolean; }; export declare type CheckboxField = { blockType: 'checkbox'; blockName?: string; width?: string; name: string; label?: string; defaultValue?: boolean; required?: boolean; }; export declare type MessageField = { blockType: 'message'; blockName?: string; message: unknown; }; export declare type FormFieldBlock = TextField | SelectField | EmailField | StateField | CountryField | CheckboxField | MessageField | PaymentField; export declare type Email = { emailTo: string; emailFrom: string; bcc?: string; replyTo?: string; subject: string; message?: any; }; export declare type FormattedEmail = { to: string; from: string; subject: string; html: string; replyTo: string; }; export declare type Redirect = { type: 'reference' | 'custom'; reference?: { relationTo: string; value: string | unknown; }; url: string; }; export declare type Form = { id: string; title: string; fields: FormFieldBlock[]; submitButtonLabel?: string; confirmationType: 'message' | 'redirect'; confirmationMessage?: any; redirect?: Redirect; emails: Email[]; }; export declare type SubmissionValue = { field: string; value: unknown; }; export declare type FormSubmission = { form: string | Form; submissionData: SubmissionValue[]; };