import * as common from './common'; export declare type BusinessPersonProfile = { firstName: string; lastName: string; dob: Date; roles: Array; residentialAddress: common.Address; }; export declare type UpdateBusinessPersonProfile = { firstName?: string; lastName?: string; dob?: Date; roles?: Array; residentialAddress?: common.Address; }; export declare type BusinessPerson = { id?: string; customerId?: string; profile?: BusinessPersonProfile; }; export declare type CreateBusinessPerson = { customerId: string; profile: BusinessPersonProfile; }; export declare type UpdateBusinessPerson = { id: string; customerId: string; profile: UpdateBusinessPersonProfile; }; export declare type IncorporatedBusinessProfile = { registeredName: string; tradingName?: string; email: string; phoneNumber: string; industry?: string; url?: string; taxCountryISO: string; registeredAddress: common.Address; tradingAddress: common.Address; orgChart?: string; incorporatedDate?: Date; accountPurpose?: AccountPurpose; businessDescription?: string; }; export declare type UpdateIncorporatedBusinessProfile = { registeredName?: string; tradingName?: string; email?: string; phoneNumber?: string; industry?: string; url?: string; taxCountryISO?: string; registeredAddress?: common.Address; tradingAddress?: common.Address; orgChart?: string; incorporatedDate?: Date; accountPurpose?: AccountPurpose; businessDescription?: string; }; export declare type IncorporatedBusiness = { id?: string; createdAt?: Date; updatedAt?: Date; activeAt?: Date; stateId?: CustomerState; annotations?: { [x: string]: string; }; tags?: Array; terms?: common.Terms; cddLevel?: CDDLevel; targetCDDLevel?: CDDLevel; companyNumber?: string; businessPersons?: Array; roleId?: string; profile?: IncorporatedBusinessProfile; preferredInstruments?: common.PreferredInstruments; shortId?: string; }; export declare type CreateIncorporatedBusiness = { companyNumber: string; profile: IncorporatedBusinessProfile; terms: common.Terms; tags?: Array; annotations?: { [x: string]: string; }; } & (roleId | roleSlug); export declare type UpdateIncorporatedBusiness = { id: string; profile?: UpdateIncorporatedBusinessProfile; terms?: common.Terms; } & (roleId | roleSlug | {}); declare type roleId = { roleId: string; role?: 'roleId'; }; declare type roleSlug = { roleSlug: string; role?: 'roleSlug'; }; export declare type CustomerState = 'PENDING' | 'ENABLED' | 'DISABLED' | 'LOCKED' | 'CLOSING' | 'TERMINATED'; export declare type CDDLevel = 'ZERO' | 'ONE' | 'TWO' | 'THREE' | 'FOUR' | 'FIVE'; export declare type AccountPurpose = 'FREELANCE' | 'GAMING' | 'SALARY' | 'INVESTMENT' | 'OTHER' | 'PURCHASE_GOODS_AND_SERVICES' | 'SELL_GOODS_AND_SERVICES' | 'SAVINGS' | 'FRIENDS_AND_FAMILY'; export declare type Occupation = 'ADMINISTRATION' | 'AGRICULTURE_FOOD_NATURAL_RESOURCES' | 'ARCHITECTURE_CONSTRUCTION' | 'ARTS_AUDIO_VIDEO_COMMUNICATIONS' | 'BUSINESS_MANAGEMENT' | 'CUSTOMER_SERVICE' | 'EDUCATION_TRAINING' | 'EMERGENCY_SERVICES' | 'FINANCIAL_SERVICES' | 'GOVERNMENT_NGO' | 'HEALTH_BEAUTY' | 'HOSPITALITY_TOURISM' | 'HUMAN_RESOURCES' | 'INFORMATION_TECHNOLOGY' | 'JOURNALISM_WRITING' | 'LAW' | 'MAINTENANCE_TRADESPERSON' | 'MANUFACTURING' | 'MARKETING_SALES' | 'PRODUCT_DESIGN' | 'SCIENCE_TECH_ENGINEERING_MATH' | 'TRANSPORTATION_LOGISTICS' | 'STUDENT' | 'OTHER'; export declare type IndividualProfile = { email: string; phoneNumber: string; residentialAddress: common.Address; firstName: string; lastName: string; dob: Date; accountPurpose?: AccountPurpose; }; export declare type UpdateIndividualProfile = { email?: string; phoneNumber?: string; residentialAddress?: common.Address; firstName?: string; lastName?: string; dob?: Date; accountPurpose?: AccountPurpose; }; export declare type Individual = { id?: string; createdAt?: Date; updatedAt?: Date; activeAt?: Date; stateId?: CustomerState; annotations?: { [x: string]: string; }; tags?: Array; terms?: common.Terms; cddLevel?: CDDLevel; targetCDDLevel?: CDDLevel; roleId?: string; profile?: IndividualProfile; preferredInstruments?: common.PreferredInstruments; shortId?: string; }; export declare type CreateIndividual = { profile: IndividualProfile; terms: common.Terms; tags?: Array; annotations?: { [x: string]: string; }; } & (roleId | roleSlug); export declare type UpdateIndividual = { id: string; profile?: UpdateIndividualProfile; terms?: common.Terms; } & (roleId | roleSlug | {}); export declare type Customer = incorporatedBusiness | individual | soleTrader | organisation; export declare type CustomerList = { results?: Array; }; export declare type CustomerToken = { accessToken?: string; }; export declare type CreateToken = { id: string; }; export declare type Transition = { id: string; fromStateId?: CustomerState; toStateId: CustomerState; annotations?: { [x: string]: string; }; tags?: Array; }; export declare type BusinessPersonId = { customerId: string; id: string; }; export declare type IndividualEnums = { accountPurpose: Array; }; export declare type IncorporatedBusinessEnums = { accountPurpose: Array; }; export declare type OrganisationEnums = { accountPurpose: Array; }; export declare type SoleTraderEnums = { accountPurpose: Array; occupation: Array; }; export declare type Enums = { incorporatedBusiness: IncorporatedBusinessEnums; individual: IndividualEnums; soleTrader: SoleTraderEnums; organisation: OrganisationEnums; }; declare type incorporatedBusiness = { incorporatedBusiness: IncorporatedBusiness; type?: 'incorporatedBusiness'; }; declare type individual = { individual: Individual; type?: 'individual'; }; declare type soleTrader = { soleTrader: SoleTrader; type?: 'soleTrader'; }; declare type organisation = { organisation: Organisation; type?: 'organisation'; }; export declare type OrganisationProfile = { name?: string; phoneNumber?: string; email?: string; registeredNumber?: string; registeredAddress?: common.Address; supplementaryInformation?: { [x: string]: string; }; accountPurpose?: AccountPurpose; businessDescription?: string; }; export declare type UpdateOrganisationProfile = { name?: string; phoneNumber?: string; email?: string; registeredNumber?: string; registeredAddress?: common.Address; supplementaryInformation?: { [x: string]: string; }; accountPurpose?: AccountPurpose; businessDescription?: string; }; export declare type Organisation = { id?: string; createdAt?: Date; updatedAt?: Date; activeAt?: Date; stateId?: CustomerState; annotations?: { [x: string]: string; }; tags?: Array; terms?: common.Terms; cddLevel?: CDDLevel; targetCDDLevel?: CDDLevel; roleId?: string; profile?: OrganisationProfile; preferredInstruments?: common.PreferredInstruments; shortId?: string; }; export declare type CreateOrganisation = { profile: OrganisationProfile; terms: common.Terms; tags?: Array; annotations?: { [x: string]: string; }; } & (roleId | roleSlug); export declare type UpdateOrganisation = { id: string; profile?: UpdateOrganisationProfile; terms?: common.Terms; } & (roleId | roleSlug | {}); export declare type SoleTraderProfile = { email: string; phoneNumber: string; industry?: string; residentialAddress: common.Address; tradingName?: string; firstName: string; lastName: string; url?: string; dob: Date; accountPurpose?: AccountPurpose; occupation?: Occupation; }; export declare type UpdateSoleTraderProfile = { email?: string; phoneNumber?: string; industry?: string; residentialAddress?: common.Address; tradingName?: string; firstName?: string; lastName?: string; url?: string; dob?: Date; accountPurpose?: AccountPurpose; occupation?: Occupation; }; export declare type SoleTrader = { id?: string; createdAt?: Date; updatedAt?: Date; activeAt?: Date; stateId?: CustomerState; annotations?: { [x: string]: string; }; tags?: Array; terms?: common.Terms; cddLevel?: CDDLevel; targetCDDLevel?: CDDLevel; roleId?: string; profile?: SoleTraderProfile; preferredInstruments?: common.PreferredInstruments; shortId?: string; }; export declare type CreateSoleTrader = { profile: SoleTraderProfile; terms: common.Terms; tags?: Array; annotations?: { [x: string]: string; }; } & (roleId | roleSlug); export declare type UpdateSoleTrader = { id: string; profile?: UpdateSoleTraderProfile; terms?: common.Terms; accountPurpose?: AccountPurpose; occupation?: Occupation; } & (roleId | roleSlug); export {};