import { Dictionary } from "../../../../types/index.js"; import { RiskLevel } from "./ApplicantSummary"; import { TAssociationRole } from "./AssociatedParty"; import { Nullable } from "./general"; import { IIssue, IIssueAction } from "./TApplicantIssue"; export interface UboReportPdfData { readonly reportType: string; checkSummary: CheckResult[]; targetCompany: Organisation; reportCreatedAt: string; frankieId: string; beneficialOwners: { individuals: Individual[]; nonIndividuals: Organisation[]; linkedCompanies: Organisation[]; }; associatedParties: Entity[]; investigatedCompanies: Organisation[]; screened: { individuals: Individual[]; companies: Organisation[]; }; suppliedData: { entityName: string | null; acn: string | null; entityType: string | null; abn: string | null; customerId: string | null; arbn: string | null; checkType: string | null; }; annualReport: null | string; hasBreakingError: boolean; helpers?: Dictionary; } export type PartialUboReportPdfData = Partial; export type EntityId = string; export type MediaData = { date: string; snippet: string; title: string; url: string; }; export type MarginsObject = { top: number; right: number; bottom: number; left: number; }; export type Entity = Organisation | Individual; export type CheckType = "m" | "s" | "pep" | "wl"; export type AMLCriteria = IndividualAmlCriteria | OrganisationAmlCriteria; export interface AmlCheckDefinitionPayload { checkTypes: CheckType[]; } export interface IsEntity { entityId: EntityId; theEntityType: string; name: string; uuid: string; } export interface IndividualAmlCriteriaPayload extends AmlCheckDefinitionPayload { name: { given: string; middle: string; family: string; }; } export interface OrganisationAmlCriteriaPayload extends AmlCheckDefinitionPayload { name: string; } export declare class AmlCheckDefinition implements AmlCheckDefinitionPayload { checkTypes: CheckType[]; constructor(d: AmlCheckDefinitionPayload); get checkTypeNames(): string[]; } export declare class IndividualAmlCriteria extends AmlCheckDefinition implements IndividualAmlCriteriaPayload { name: { given: string; middle: string; family: string; }; constructor(d: IndividualAmlCriteriaPayload); } export declare class OrganisationAmlCriteria extends AmlCheckDefinition implements OrganisationAmlCriteriaPayload { name: string; constructor(d: OrganisationAmlCriteriaPayload); } export interface AMLResultSetPayload { results: AMLMatch[] | null; criteria: Criteria; } export declare class AMLResultSet implements HasAmlStatus, AMLResultSetPayload { amlStatusReader: AMLStatusReader; criteria: Criteria; results: AMLMatch[] | null; constructor(d: AMLResultSetPayload); get adverseMediaStatus(): AdverseMediaStatus; get alerts(): string[]; get alertNames(): string[]; get count(): number; get checkTypes(): CheckType[]; get checkTypeNames(): string[]; } export interface ShareholdingOwnership { sharesHeld: number | null; isBeneficiallyHeld: boolean | null; jointHolding: boolean | null; shareClass: string | null; } export interface OwnershipObject { total: number | null; beneficiallyHeld: number | null; nonBeneficiallyHeld: number | null; shareholdings: ShareholdingOwnership[]; } export interface IndividualPayload { name: string; aml: AMLResultSet; kyc: KYCResults; addressLongForm: string; dateOfBirth: string; placeOfBirth: string; entityId: EntityId; profileType: string; customerReference: string; phoneNumber: string; emailAddress: string; roles?: TAssociationRole[]; percentageHolding?: PercentageHolding; } export interface HasAddress { addressLongForm: string; } export interface HasDisplayableName { name: string; } export type PercentageHolding = { beneficially: number | null; nonBeneficially: number | null; jointly: number | null; total: number | null; }; export declare class Individual implements IndividualPayload, IsEntity, HasKycStatus, HasAmlStatus, ShareHolder, OfficeHolder, HasAddress, HasDisplayableName { entityId: EntityId; name: string; addressLongForm: string; ownership: Dictionary; aml: AMLResultSet; kyc: KYCResults; dateOfBirth: string; profileType: string; placeOfBirth: string; customerReference: string; phoneNumber: string; emailAddress: string; roles?: TAssociationRole[]; percentageHolding?: PercentageHolding; private startDate; private type; constructor(d: IndividualPayload); setEntityType(): ShareHolder; getEntityType(): string; setOwnership(ownership: Dictionary): Individual; getOwnership(): Dictionary; getOfficeholderStartDate(): string; getOfficeholderType(): string; setOfficeholderStartDate(date: string): this; setOfficeholderType(type: string): this; isOwnershipNonUbo(organisationId: EntityId): boolean; get amlCount(): number; get adverseMediaStatus(): AdverseMediaStatus; get alerts(): string[]; get alertNames(): string[]; get kycStatus(): KYCStatus; get theEntityType(): string; get uuid(): string; get checkTypes(): string[]; get checkTypeNames(): string[]; } export interface AMLResultsPayload { matches: AMLMatch[]; } interface HasAmlStatus { adverseMediaStatus: AdverseMediaStatus; alerts: string[]; alertNames: string[]; } export declare class AMLStatusReader implements HasAmlStatus { results: HasAmlStatus[] | null; static readonly AML_FAILING_ORDER: string[]; constructor(results: HasAmlStatus[] | null); /** * From the match list, find out if media is included to determine adverse media status */ get adverseMediaStatus(): AdverseMediaStatus; get alerts(): string[]; get alertNames(): string[]; get count(): number; } export interface HasKycStatus { kycStatus: KYCStatus; } export declare class KYCStatusReader { results: HasKycStatus[] | null; static readonly KYC_FAILING_ORDER: string[]; constructor(results: HasKycStatus[] | null); get kycStatus(): KYCStatus; } export declare class AMLResult implements AMLResultsPayload, HasAmlStatus { matches: AMLMatch[]; amlStatusReader: AMLStatusReader; constructor(d: AMLResultsPayload); get adverseMediaStatus(): AdverseMediaStatus; get alerts(): string[]; get alertNames(): string[]; get matchCount(): number; get count(): number; } export interface KYCResultsPayload { status: KYCStatus; sources: string[]; issuesList: (IIssue | IIssueAction)[]; riskLevel: RiskLevel; } export declare class KYCResults implements KYCResultsPayload { status: KYCStatus; sources: string[]; issuesList: (IIssue | IIssueAction)[]; riskLevel: RiskLevel; constructor(d: KYCResultsPayload); } export interface OrganisationPayload { name: string; abrExtract: ABRExtract; asicExtract: ASICExtract; industry: Industry; giin: string | null; addresses: Address[]; officeHolders: Entity[] | null; shareHolders: Entity[] | null; kyc: KYCResults; aml: AMLResultSet | null; stock?: StockInformation | null; entityId: EntityId; roles?: TAssociationRole[]; percentageHolding?: PercentageHolding; } export type KYBReportTemplate = "SINGLE-LEVEL" | "SINGLE-LEVEL-AML" | "UBO"; export declare class Organisation implements OrganisationPayload, IsEntity, HasAmlStatus, ShareHolder, OfficeHolder, HasAddress, HasDisplayableName { entityId: EntityId; name: string; abrExtract: ABRExtract; asicExtract: ASICExtract; industry: Industry; giin: string | null; addresses: Address[]; officeHolders: Entity[] | null; shareHolders: Entity[] | null; stock?: StockInformation | null; aml: AMLResultSet | null; kyc: KYCResults; roles?: TAssociationRole[]; percentageHolding?: PercentageHolding; private entityType; private ownership; private startDate; private type; constructor(d: OrganisationPayload); setOfficeholderType(type: string): this; getOfficeholderType(): string; setOfficeholderStartDate(date: string): this; getOfficeholderStartDate(): string; setEntityType(type: string): Organisation; getEntityType(): string; setOwnership(ownership: Dictionary): Organisation; getOwnership(): Dictionary; get addressLongForm(): string; get amlCount(): number; get checkTypes(): string[]; get checkTypeNames(): string[]; get adverseMediaStatus(): AdverseMediaStatus; get alerts(): string[]; get alertNames(): string[]; get theEntityType(): string; get abn(): string; get acn(): string; get arbn(): string; get asicEntityType(): string; get abrEntityType(): string; get organisationType(): string; get entityTypeCode(): string; get uuid(): string; } export interface OfficeHolder { setOfficeholderType: (type: string) => OfficeHolder; getOfficeholderType: () => string; setOfficeholderStartDate: (date: string) => OfficeHolder; getOfficeholderStartDate: () => string; } export interface ShareHolder { setEntityType: (type: string) => ShareHolder; getEntityType: () => string; setOwnership: (ownership: Dictionary) => ShareHolder; getOwnership: () => Dictionary; } export declare class Address { type: string; longForm: string; startDate: string; constructor(d: { type: string; longForm: string; startDate: string; }); get typeFormatted(): string; } export declare class Industry { anzsic: string[]; constructor(d: { anzsic: string[]; }); } export type TBusinessName = { name: string; effectiveFrom: Nullable; effectiveTo: Nullable; }; export type TABNStatus = { status: Nullable; effectiveFrom: Nullable; }; export declare class ABRExtract { entityName: string; abn: string; registrationDate: string; entityStatus: string; entityType: string; gstStatus: string; location: string; businessNames: TBusinessName[]; historicalBusinessNames: TBusinessName[]; tradingNames: string[]; abnLastUpdated: string; abnStatus: Nullable; constructor(d: { entityName: string; abn: string; registrationDate: string; entityStatus: string; entityType: string; gstStatus: string; location: string; businessNames: TBusinessName[]; historicalBusinessNames: TBusinessName[]; tradingNames: string[]; abnLastUpdated: string; abnStatus: Nullable; }); } export declare class ASICExtract { static targetExtractDate: string; extractDate: string; companyName: string; acn: string; registrationDate: string; status: string; companyType: string; class: string; subClass: string; locality: string; stateOfRegistration: string; arbn: string; subClassCode: string; companyTypeCode: string; constructor(d: { extractDate: string; companyName: string; acn: string; registrationDate: string; status: string; companyType: string; class: string; subClass: string; locality: string; stateOfRegistration: string; arbn: string; subClassCode: string; companyTypeCode: string; }); } export declare class StockInformation { exchange: string; ticker: string; country: string; approved: boolean; screenshot: boolean | string; screenshotDate: string; constructor(d: { exchange: string; ticker: string; country: string; approved: boolean; screenshot: string | boolean; screenshotDate: string; }); addScreenshotBase64(base64: any): void; } export interface AMLMatchPayload { name: string; category: string; country: string; originalCountryText: string; countries: string[]; dateOfBirth: string; aka: string[]; associates: Associate[]; mediaReferences: MediaReference[]; } export declare class AMLMatch implements AMLMatchPayload, HasAmlStatus { name: string; category: string; country: string; originalCountryText: string; countries: string[]; dateOfBirth: string; aka: string[]; associates: Associate[]; mediaReferences: MediaReference[]; constructor(d: AMLMatchPayload); get alerts(): string[]; get alertNames(): ("-" | "Adverse Media")[]; get adverseMediaStatus(): AdverseMediaStatus; } export declare class MediaReference { at: string; title: string; url: string; constructor(d: { at: string; title: string; url: string; }); } export declare class Associate { association: string; name: string; constructor(association: string, name: string); } type ComposedLabel = [string, string]; export declare class CheckResult { status: Badge; text: string; constructor(status: Badge, text: string); } export declare abstract class Badge { code: string | null; constructor(code: string | null); abstract get label(): ComposedLabel | string; abstract get type(): "success" | "warn" | "fail" | null; isEmpty(): boolean; asBadgeMixin(): (string | { label: ComposedLabel | string; type: string; } | null)[]; } export type PassedStatusCodes = "PASS" | "FAIL" | "WARN" | null; export declare class PassedStatus extends Badge { constructor(code: PassedStatusCodes); get label(): ComposedLabel; get type(): "success" | "fail" | "warn" | null; } export declare class AdverseMediaStatus extends Badge { constructor(code: "NO_MATCH" | "POT_MATCH" | null); get label(): string; get type(): "success" | "warn" | null; } export declare class KYCStatus extends Badge { constructor(code: PassedStatusCodes); get label(): string; get type(): "success" | "fail" | "warn" | null; } export {}; //# sourceMappingURL=UBOData.d.ts.map