import { ILanguageNames } from "./constants"; import { ChacaUtils } from "../../core/utils"; import { DatatypeModule } from "../datatype"; export declare type AllLanguages = "es" | "en"; export declare type LangugeProps = { language?: AllLanguages; }; export declare type Sex = "male" | "female"; export declare type NameProps = { language?: AllLanguages; sex?: Sex; }; export declare type SexProps = { sex?: Sex; }; export declare class PersonModule { private readonly utils; private readonly datatypeModule; constructor(utils: ChacaUtils, datatypeModule: DatatypeModule); readonly constants: { jobLevels: string[]; jobAreas: string[]; genders: string[]; names: { es: ILanguageNames; en: ILanguageNames; }; languages: string[]; prefixes: { male: string[]; female: string[]; }; zodiacSigns: string[]; sexs: string[]; }; /** * @example * modules.person.language() // 'Georgian' * * @returns string */ language(): string; /** * Returns a Job Level * @example modules.person.jobLevel() // 'Investor' * @returns string */ jobLevel(): string; /** * Returns a Job Area * @example modules.person.jobArea() // 'Supervisor' * @returns string */ jobArea(): string; /** * Returns a person gender * @example modules.person.gender() // 'Bigender' * @returns string */ gender(): string; /** * Returns a person sex * @example modules.person.sex() // 'Male' * @returns `Male` | `Female` */ sex(): string; /** * Returns a first name from a selected lenguage * @param args.language (`'en'` | `'es'`). Default `'en'` * @param args.sex Person name sex (`'male'` | `'female'`) * @example modules.person.firstName() // 'Juan' * @returns string */ firstName({ language, sex }?: NameProps): string; /** * Returns a last name from a selected lenguage * @param args.language (`en` | `es`). Default `en` * @example modules.person.lastName() // 'Scott' * @returns string */ lastName({ language }?: LangugeProps): string; /** * Returns a full name from a selected lenguage * @param args.language (`en` | `es`). Default `en` * @param args.sex (`male` | `female`) * @example * modules.person.fullName() // Schema * modules.person.fullName() // 'Juan Rodriguez Perez' * @returns string */ fullName({ language, sex: isex }?: NameProps): string; /** * Returns a random zodiac sign. * * @example * modules.person.zodiacSign() // 'Pisces' */ zodiacSign(): string; /** * Returns a random name prefix * @param args.sex Sex of the person. (`male` | `female`) * @example modules.person.prefix() // 'Ms.' * @returns string */ prefix({ sex: isex }?: SexProps): string; private filterNameByLanguage; private filterBySex; }