import type { SelectItem } from '../../../ui/atoms/Select/Select.types';
import type { StructuredListItem } from '../../../ui/atoms/StructuredList/StructuredList';
import type { ExistingLegalEntity } from '../../../../core/models/api/legal-entity';
import type { Problem } from '../../../../core/models/api/problem';
import type { BusinessLinesServiceType, BusinessLinesType, SourceOfFundsCategoryType, SourceOfFundsFinancierType, SourceOfFundsPayloadType, SourceOfFundsType } from '../../../../core/models/api/source-of-funds';
import type { VerificationError } from '../../../../core/models/api/verification-error';
import type { NsTranslationKey, TFunction } from '../../../../../types';
import type { SOFFinancierModalInputError } from './SOFAdditionalData/SOFFinancierModal';
import type { OriginatorTypeUnion, SOFOriginatorPayload, SourceOfFundsAdditionalDataSchema, SourceOfFundsSchema, SourceOfFundsTypeSchema } from './types';
export declare const allowedCurrencies: SelectItem[];
export declare const SOF_CHARACTERS_LIMIT = 200;
export declare const TODAY_DATE: string;
export declare const getAdditionalDataSchemaKeys: (sourceOfFundsType?: SourceOfFundsCategoryType | "adyen", originatorType?: OriginatorTypeUnion) => Array<keyof SourceOfFundsAdditionalDataSchema>;
export declare const getServiceTranslation: (t: TFunction<"sof">, service?: BusinessLinesServiceType | string) => string;
export declare const getServiceTranslationSelectTitle: (t: TFunction<"sof">, service?: BusinessLinesServiceType | string) => string;
export declare const getServiceTranslationKey: (service?: BusinessLinesServiceType | string) => NsTranslationKey<"sof">;
export declare const getGettingStartedCardDetails: (sourceOfFundsType: Array<keyof SourceOfFundsAdditionalDataSchema>, t: TFunction<"sof">, data?: SourceOfFundsAdditionalDataSchema) => StructuredListItem[];
export declare const sourceOfFundsForms: {
    readonly sourceOfFundsType: {
        readonly formId: "sourceOfFundsType";
        readonly formName: "selectASourceOfFunding";
        readonly fields: string[];
    };
    readonly additionalData: {
        readonly formId: "additionalData";
        readonly formName: "tellUsMoreAboutThisSource";
        readonly fields: string[];
    };
};
export declare const getSourceOfFundsRequiredFields: (data: SourceOfFundsSchema | undefined) => {
    sourceOfFundsType: "type"[];
    additionalData: (keyof SourceOfFundsAdditionalDataSchema)[];
};
export declare const getSourceOfFundsRequiredForms: (data?: SourceOfFundsTypeSchema) => {
    [k: string]: {
        readonly formId: "sourceOfFundsType";
        readonly formName: "selectASourceOfFunding";
        readonly fields: string[];
    } | {
        readonly formId: "additionalData";
        readonly formName: "tellUsMoreAboutThisSource";
        readonly fields: string[];
    };
};
export declare const getInputErrors: ({ formErrors, data, key, value, }: {
    formErrors?: SOFFinancierModalInputError;
    data?: SourceOfFundsFinancierType;
    key: string;
    value?: string | number | undefined;
}) => SOFFinancierModalInputError;
export declare const getPageHeadings: (type: SourceOfFundsCategoryType | "adyen") => {
    heading: NsTranslationKey<"sof">;
    description?: NsTranslationKey<"sof">;
};
export declare const getDocumentRequirements: Partial<Record<NsTranslationKey<'sof'>, NsTranslationKey<'sof'>[]>>;
export declare const getDocumentLists: (sourceOfFundsType: SourceOfFundsCategoryType | "adyen") => NsTranslationKey<"sof">[];
export declare const parseSOFDocumentDescription: (t: TFunction<"sof">, documentDescription: string | undefined) => string | undefined;
export declare const MISSING_DATA_SOF_UPLOAD_CODE = "2_8224";
export declare const parseOriginatorDetails: (originatorDetails: ExistingLegalEntity, businessLine: BusinessLinesType) => BusinessLinesType;
export declare const getSourceOfFundsPayload: (sofType: SourceOfFundsCategoryType, additionalData?: SourceOfFundsAdditionalDataSchema) => SourceOfFundsPayloadType;
export declare const parseSofOriginatorPayload: (additionalData?: SourceOfFundsAdditionalDataSchema) => SOFOriginatorPayload;
export declare const formatDateForInput: (isoDateString?: string) => string;
export declare const getSofCardDetails: (t: TFunction<"sof">, sourceOfFunds?: SourceOfFundsType) => string;
export declare const ALLOWED_SOF_SERVICES: BusinessLinesServiceType[];
/**
 * Returns business lines that require SoF (based on ALLOWED_SOF_SERVICES)
 */
export declare const getApplicableBusinessLines: (businessLines: BusinessLinesType[]) => BusinessLinesType[];
/**
 * Deep comparison of SoF data.
 * Returns true if all business-relevant fields are identical.
 */
export declare const areSourceOfFundsEqual: (sof1: SourceOfFundsSchema, sof2: SourceOfFundsSchema) => boolean;
export declare const SOF_INVALID_INPUT_ERROR_CODES: string[];
export declare const getRelevantErrors: (problems: Problem[] | undefined, targetCodes: string[]) => false | VerificationError[];
export declare const getUniqueRemediationActions: (error: VerificationError) => import("../../../../core/models/api/remediating-action").RemediatingAction[];
export declare const sofCategoryItemMapper: Record<string, NsTranslationKey<'sof'>>;
/**
 * Prepares additional data for originator creation/update.
 * When useSameAs is true, appends the originatorLegalEntityId from the source
 * so that createOrUpdateOriginator can update the existing LE instead of creating a new one.
 */
export declare const getAdditionalDataForOriginator: (additionalData: SourceOfFundsAdditionalDataSchema | undefined, sourceAdditionalData: SourceOfFundsAdditionalDataSchema | undefined, useSameAs: boolean) => SourceOfFundsAdditionalDataSchema | undefined;
