import type { ExistingLegalEntity } from '../../../core/models/api/legal-entity';
import type { Scenario } from '../../../core/models/api/get-scenarios';
import type { LegalEntityAssociation } from '../../../core/models/api/legal-entity-association';
import type { TaskType } from '../../../stores/globalStore/taskTypes';
import type { EntityProblems } from '../../../types/errors/entity-problems';
import type { IndividualSchema } from '../forms/Individual.types';
export interface IdNowMissingDataPoints {
    missingPlaceOfBirth: boolean;
    missingNationality: boolean;
}
/**
 * For an IDnow-qualified BAFIN signatory, returns an object describing which of the two required
 * data points (placeOfBirth, nationality) are still missing, or `null` when no action is needed.
 *
 * Returns `null` when any of the following conditions are true:
 * - The entity is not a signatory, or the L_BAFIN scenario is not active
 * - The `2_215` (live-selfie) remediation code is absent from problems
 * - Both placeOfBirth and nationality are already present
 */
export declare const getIdNowMissingDataPoints: (problems: EntityProblems | undefined, legalEntity: ExistingLegalEntity, scenarios: Scenario[] | undefined, roles: Array<LegalEntityAssociation["type"]>) => IdNowMissingDataPoints | null;
/**
 * For the BAFIN signatory flow, certain ID verification errors and remediation actions are not applicable.
 * This utility function takes a problems object and returns a new, deeply cloned object with all
 * ID verification-related issues removed.
 *
 * Specifically, it removes:
 * - 'missingData' entries related to ID document upload ('1_301').
 * - The '1_301' remediation action from `remediationActions`.
 * - The entire `idVerificationMethod` object from `verificationErrors`.
 * - Any nested sub-errors with code '1_301' from `basicDetails` and `additionalPersonalDetails`.
 *
 * @param problems - The original entity problems object.
 * @returns A new `EntityProblems` object with BAFIN-specific modifications.
 */
export declare const removeIdVerificationProblemsForBafinSignatory: (problems: EntityProblems, decisionMakerLe: ExistingLegalEntity) => EntityProblems;
interface IsBafinSignatoryFlowParams {
    taskType: TaskType;
    data?: LegalEntityAssociation | IndividualSchema;
    scenarios?: Scenario[];
}
/**
 * Checks if the current context matches the specific flow for a BAFIN signatory.
 * This is true when the task is for a decision maker, their role is 'signatory',
 * and the BAFIN scenario is active.
 *
 * @param params - The parameters for the check.
 * @returns `true` if the conditions for the BAFIN signatory flow are met.
 */
export declare const isBafinSignatoryFlow: ({ taskType, data, scenarios, }: IsBafinSignatoryFlowParams) => boolean;
export {};
