import type { ExistingLegalEntity } from '../../core/models/api/legal-entity';
import type { TranslationKey } from '../../language/types';
import type { DropinAPIHandlers, DropinProps } from '../Dropins/types';
import type { AccountHolderOption, LegalArrangementOption } from '../../core/types/AccountHolder.types';
export interface BusinessTypeSelectionProps extends DropinAPIHandlers, DropinProps {
    legalEntityResponse: ExistingLegalEntity;
    accountHolder: AccountHolderOption | undefined;
    onComplete: (accountHolder: AccountHolderOption) => void;
    onBack?: () => void;
}
export interface BusinessTypeSelectionSchema {
    businessType?: BusinessTypeModel;
    legalArrangement?: LegalArrangementModel;
    trusteeType?: TrusteeTypeModel;
}
export type BusinessTypeMetadata = Record<BusinessType, BusinessTypeModel>;
export type BusinessType = 'individual' | 'soleProprietorship' | 'company' | 'legalArrangement';
export interface BusinessTypeModel {
    id: BusinessType;
    name: TranslationKey;
    description: TranslationKey;
    accountHolder?: Exclude<AccountHolderOption, LegalArrangementOption>;
}
export interface LegalArrangementModel {
    id: LegalArrangementOption;
    accountHolder: AccountHolderOption;
    name: TranslationKey;
    description: TranslationKey;
}
export declare const trusteeTypes: readonly ["individual", "company"];
export type TrusteeType = (typeof trusteeTypes)[number];
export interface TrusteeTypeModel {
    id: TrusteeType;
    name: TranslationKey;
}
