import type { CapabilityName } from '../../../../core/models/api/capability';
import type { ExistingLegalEntity } from '../../../../core/models/api/legal-entity';
import type { BaseOuterFormProps } from '../../../../hooks/useForm/types';
import type { DocumentUploadSchema } from '../../../Shared/forms/DocumentUpload/types';
import type { RegistrationAddressSchema } from '../../../Shared/forms/RegistrationAddress/types';
import type { TaskTypes } from '../../../../stores/globalStore/taskTypes';
import type { CountryCode } from '../../../../types/datasets/country-code';
import type { FormModel } from '../../../../types/form';
import type { DropinProps } from '../../../EmbeddedDropins/OnboardingDropinComponent/DropinComposer/types';
import type { TrustRegistrationDetailsSchema } from '../TrustRegistrationDetails/types';
export interface TrustSchema {
    trustRegistrationDetails?: TrustRegistrationDetailsSchema;
    trustRegistrationAddress?: RegistrationAddressSchema;
    trustConstitutionalDocument?: DocumentUploadSchema<'constitutionalDocument'>;
}
export interface TrustProps extends BaseOuterFormProps<TrustSchema> {
    capabilities?: CapabilityName[];
    activeForm?: FormModel;
    forms?: FormModel[];
    country: CountryCode;
    taskType: typeof TaskTypes.TRUST | typeof TaskTypes.UNINCORPORATED_PARTNERSHIP;
    onCountryChange?: (country: CountryCode) => void;
}
export interface TrustDropinProps extends TrustProps, Omit<DropinProps, 'taskType'> {
    existingTrust: ExistingLegalEntity | undefined;
    parentLegalEntity: ExistingLegalEntity;
    onSubmit?: (data: TrustSchema) => void;
}
