import type { Faker } from "@faker-js/faker";
import { type FirstNameOptions } from "./firstName.module";
import { Gender, type PersonOptions } from "../types/types";
import { type FiscalCodeOptions } from "./fiscalCode.module";
import type { ItalianPersonDto } from "../types/dto/person.dto";
import { type Observable } from 'rxjs';
export declare class PersonModule {
    private readonly faker;
    private readonly lastNameModule;
    private readonly namesModule;
    private readonly placesModule;
    private readonly fiscalCodeModule;
    private readonly addressModule;
    constructor(faker: Faker);
    firstName$(options?: FirstNameOptions): Observable<string>;
    lastName$(options?: {
        region?: string;
        province?: string;
    }): Observable<string>;
    fullName$(options?: FirstNameOptions): Observable<string>;
    prefix$(gender: Gender): Observable<string>;
    fiscalCode$(options: FiscalCodeOptions): Observable<string>;
    birthPlace$(): Observable<string>;
    province$(): Observable<{
        name: string;
        code: string;
    }>;
    birthDate$(minAge?: number, maxAge?: number): Observable<Date>;
    phone$(): Observable<string>;
    landline$(): Observable<string>;
    email$(firstName?: string, lastName?: string): Observable<string>;
    pec$(firstName?: string, lastName?: string): Observable<string>;
    generatePerson$(options?: PersonOptions): Observable<ItalianPersonDto>;
    firstName(options?: FirstNameOptions): Promise<string>;
    lastName(options?: {
        region?: string;
        province?: string;
    }): Promise<string>;
    fullName(options?: FirstNameOptions): Promise<string>;
    fiscalCode(options: FiscalCodeOptions): Promise<string>;
    email(firstName?: string, lastName?: string): Promise<string>;
    pec(firstName?: string, lastName?: string): Promise<string>;
    generatePerson(options?: PersonOptions): Promise<ItalianPersonDto>;
    private generatePhone;
    private generateLandline;
    private generateEmail;
    private generatePec;
    parseGender(value: string | undefined): Gender | undefined;
}
