import type { ComponentChild } from 'preact';
import type { Dispatch, StateUpdater } from 'preact/hooks';
import type { LegalEntityAssociation } from '../../core/models/api/legal-entity-association';
import type { LegalEntityType } from '../../core/models/api/legal-entity-type';
import type { EntityProblems } from '../../core/models/errors/entity-problems';
import type { TaskStatus } from '../TaskList/types';
import type { ActionsMenuOption } from '../ui/atoms/ActionsMenu/ActionsMenu';
export interface EntityAssociationProps {
    name: string;
    types: Array<LegalEntityAssociation['type']>;
    status: TaskStatus;
    actions?: ActionsMenuOption[];
    infoContent?: ComponentChild;
    problems?: EntityProblems;
    onNavigateToEntity?: () => void;
    removeEntity?: () => void;
    isRemoveDisabled?: boolean;
    handleIsRemoveDisabled?: Dispatch<StateUpdater<boolean>>;
}
export interface UniqueEntityAssociation {
    /**
     * - for associated sole props and trust LEs, this is their `legalEntityId`
     * - decision makers are always full LEs, so this is their `legalEntityId`
     * - for trust members that are full LEs, this is their `legalEntityId`
     * - for undefined beneficiaries, this is the {@link UndefinedBeneficiaryInfo.reference}
     * - for an exempt settlor, it will simply be the string `exemptSettlor` (there should only be one)
     */
    reference: string;
    jobTitle?: string;
    types: Array<LegalEntityAssociation['type']>;
    status: TaskStatus;
    name: string;
    legalEntityType?: LegalEntityType;
    problems?: EntityProblems;
}
