/******************************************************************** * Copyright 2025 Adobe * All Rights Reserved. * * NOTICE: Adobe permits you to use, modify, and distribute this * file in accordance with the terms of the Adobe license agreement * accompanying it. *******************************************************************/ import { HTMLAttributes } from 'preact/compat'; import { Container, SlotProps } from '@dropins/tools/lib'; import { requestNegotiableQuote } from '../../api'; import { AttachedFile } from '../../components'; export type RequestNegotiableQuoteHandlers = { onAttachFiles?: (files: File[]) => Promise; onRequestNegotiableQuote?: typeof requestNegotiableQuote; onSaveNegotiableQuote?: typeof requestNegotiableQuote; onSubmitErrors?: (errors: Record) => void; onError?: (props: { error: string; isFormDisabled: boolean; setIsFormDisabled: (isFormDisabled: boolean) => void; }) => void; }; export interface RequestNegotiableQuoteFormProps extends Omit, 'onError'>, RequestNegotiableQuoteHandlers { cartId: string; maxFiles?: number; maxFileSize?: number; acceptedFileTypes?: string[]; slots?: { ErrorBanner?: SlotProps<{ message: string; }>; SuccessBanner?: SlotProps<{ message: string; }>; Title?: SlotProps<{ text: string; }>; CommentField?: SlotProps<{ formErrors: Record; isFormDisabled: boolean; setFormErrors: (errors: Record) => void; }>; QuoteNameField?: SlotProps<{ formErrors: Record; isFormDisabled: boolean; setFormErrors: (errors: Record) => void; }>; AttachFileField?: SlotProps<{ onChange: (files: File[]) => void; formErrors: Record; isFormDisabled: boolean; attachedFiles: AttachedFile[]; }>; AttachedFilesList?: SlotProps<{ files: AttachedFile[]; onRemove: (key: string) => void; disabled?: boolean; }>; RequestButton?: SlotProps<{ requestNegotiableQuote: typeof requestNegotiableQuote; formErrors: Record; isFormDisabled: boolean; setIsFormDisabled: (isFormDisabled: boolean) => void; }>; SaveDraftButton?: SlotProps<{ requestNegotiableQuote: typeof requestNegotiableQuote; formErrors: Record; isFormDisabled: boolean; setIsFormDisabled: (isFormDisabled: boolean) => void; }>; }; } export declare const RequestNegotiableQuoteForm: Container;