import { Option } from '@fable-org/fable-library-js/Option.js';
import { OntologyAnnotation } from './OntologyAnnotation.fs.js';
import { Comment$ } from './Comment.fs.js';
import { FSharpList } from '@fable-org/fable-library-js/List.js';
import { int32 } from '@fable-org/fable-library-js/Int32.js';
import { TypeInfo } from '@fable-org/fable-library-js/Reflection.js';
export declare class Person {
    _orcid: Option<string>;
    _lastName: Option<string>;
    _firstName: Option<string>;
    _midInitials: Option<string>;
    _email: Option<string>;
    _phone: Option<string>;
    _fax: Option<string>;
    _address: Option<string>;
    _affiliation: Option<string>;
    _roles: OntologyAnnotation[];
    _comments: Comment$[];
    constructor(orcid?: string, lastName?: string, firstName?: string, midInitials?: string, email?: string, phone?: string, fax?: string, address?: string, affiliation?: string, roles?: OntologyAnnotation[], comments?: Comment$[]);
    get ORCID(): string | undefined;
    set ORCID(orcid: Option<string>);
    get FirstName(): string | undefined;
    set FirstName(firstName: Option<string>);
    get LastName(): string | undefined;
    set LastName(lastName: Option<string>);
    get MidInitials(): string | undefined;
    set MidInitials(midInitials: Option<string>);
    get Address(): string | undefined;
    set Address(address: Option<string>);
    get Affiliation(): string | undefined;
    set Affiliation(affiliation: Option<string>);
    get EMail(): string | undefined;
    set EMail(email: Option<string>);
    get Phone(): string | undefined;
    set Phone(phone: Option<string>);
    get Fax(): string | undefined;
    set Fax(fax: Option<string>);
    get Roles(): OntologyAnnotation[];
    set Roles(roles: OntologyAnnotation[]);
    get Comments(): Comment$[];
    set Comments(comments: Comment$[]);
    static make(orcid: Option<string>, lastName: Option<string>, firstName: Option<string>, midInitials: Option<string>, email: Option<string>, phone: Option<string>, fax: Option<string>, address: Option<string>, affiliation: Option<string>, roles: OntologyAnnotation[], comments: Comment$[]): Person;
    static create(orcid?: string, lastName?: string, firstName?: string, midInitials?: string, email?: string, phone?: string, fax?: string, address?: string, affiliation?: string, roles?: OntologyAnnotation[], comments?: Comment$[]): Person;
    static get empty(): Person;
    static tryGetByFullName(firstName: string, midInitials: string, lastName: string, persons: Person[]): Option<Person>;
    static existsByFullName(firstName: string, midInitials: string, lastName: string, persons: Person[]): boolean;
    static add(persons: FSharpList<Person>, person: Person): FSharpList<Person>;
    static removeByFullName(firstName: string, midInitials: string, lastName: string, persons: Person[]): Person[];
    Copy(): Person;
    GetHashCode(): int32;
    Equals(obj: any): boolean;
    toString(): string;
}
export declare function Person_$reflection(): TypeInfo;
export declare function Person_$ctor_Z2F6491B5(orcid?: string, lastName?: string, firstName?: string, midInitials?: string, email?: string, phone?: string, fax?: string, address?: string, affiliation?: string, roles?: OntologyAnnotation[], comments?: Comment$[]): Person;
//# sourceMappingURL=Person.fs.d.ts.map