import { default as React } from 'react';
import { AllowedValueWithCode, FetchStateAndError, File, FundingAccount, ID, PaymentToOption, ZeniAccountPaymentMethod, ZeniDate } from '@zeniai/client-epic-state';
import { FileProps } from '../../../../commonSetUp/sections/companyDetailsSection/companyDetailsTypes';
import { CreatableSingleSelectFieldValue } from '../../../../creatableSingleSelect/CreatableSingleSelectField';
import { FormSectionProps } from '../../../../formElements/common/formSection';
import { SingleSelectPickerFieldValue } from '../../../../formElements/singleSelectPickerField/SingleSelectPickerField';
/**
 * Form Data Type
 */
export interface PaymentDetailsFormData {
    amount: number;
    paymentDate?: Date;
    paymentMethod?: ZeniAccountPaymentMethod;
    paymentTo?: CreatableSingleSelectFieldValue;
    receipt?: File;
    withdrawFrom?: SingleSelectPickerFieldValue;
}
type FormDataKeys = keyof PaymentDetailsFormData;
declare const uniqueName: (sectionId: string, key: FormDataKeys) => `${string}.amount` | `${string}.paymentDate` | `${string}.paymentTo` | `${string}.withdrawFrom` | `${string}.receipt` | `${string}.paymentMethod`;
export type PaymentFormKeyUniqueNames = ReturnType<typeof uniqueName>;
/**x
 * Component & its Props
 */
export interface FooterButtons {
    buttonWidth?: number;
    cancelButtonLabel?: string;
    primaryButtonLabel?: string;
    separatorStyle?: React.CSSProperties;
}
export interface PaymentDetailsSectionView {
    paymentDate?: ZeniDate;
    paymentTo?: PaymentToOption;
    paymentType?: ZeniAccountPaymentMethod;
    receipt?: File;
    recipientAmount?: number;
    withdrawFrom?: FundingAccount;
}
export interface PaymentDetailsSectionProps extends FormSectionProps {
    allPaymentMethods: ZeniAccountPaymentMethod[];
    deleteFileStatusById: Record<ID, FetchStateAndError | undefined>;
    fileProps: FileProps;
    paymentToOptions: PaymentToOption[];
    sectionId: string;
    updateFileStatusById: Record<ID, FetchStateAndError | undefined>;
    withdrawFromList: FundingAccount[];
    internationalVerificationStatus?: AllowedValueWithCode;
    paymentDetails?: PaymentDetailsSectionView;
    receiptFile?: File;
    onClickAddAccount: () => void;
}
export declare const PaymentDetailsSection: ({ sectionId, paymentDetails, allPaymentMethods, paymentToOptions, withdrawFromList, internationalVerificationStatus, fileProps, receiptFile, deleteFileStatusById, updateFileStatusById, onClickAddAccount, }: Readonly<PaymentDetailsSectionProps>) => import("react/jsx-runtime").JSX.Element;
export {};
