export interface Profile {
    Id: string;
    Name: string;
    PageId: string;
    IsManager: 0 | 1;
}
/**
 * Person structure returned from WikiTree API.
 *
 * See also: https://github.com/wikitree/wikitree-api/blob/main/getProfile.md#results
 */
export interface Person {
    Id: number;
    PageId: number;
    Name: string;
    IsPerson: 0 | 1;
    FirstName: string;
    MiddleName: string;
    MiddleInitial: string;
    LastNameAtBirth: string;
    LastNameCurrent: string;
    Nicknames: string;
    LastNameOther: string;
    RealName: string;
    Prefix: string;
    Suffix: string;
    ShortName: string;
    BirthNamePrivate: string;
    LongNamePrivate: string;
    LongName: string;
    BirthName: string;
    BirthDate: string;
    DeathDate: string;
    BirthLocation: string;
    DeathLocation: string;
    BirthDateDecade: string;
    DeathDateDecade: string;
    Gender: string;
    Photo: string;
    IsLiving: 0 | 1;
    Touched: string;
    Created: string;
    Privacy: number;
    Manager: number;
    HasChildren: 0 | 1;
    NoChildren: 0 | 1;
    DataStatus?: {
        Spouse: string | null;
        Father: string | null;
        Mother: string | null;
        FirstName: string | null;
        MiddleName: string | null;
        LastNameCurrent: string | null;
        RealName: string | null;
        LastNameOther: string | null;
        Gender: string | null;
        BirthDate: string | null;
        DeathDate: string | null;
        BirthLocation: string | null;
        DeathLocation: string | null;
        Photo: string | null;
        Prefix: string | null;
        Nicknames: string | null;
        Suffix: string | null;
        LastNameAtBirth: string | null;
        ColloquialName: string | null;
    };
    IsRedirect: 0 | 1;
    TrustedList: Profile[];
    Managers: Profile[];
    Connected: 0 | 1;
    Categories: string[];
    Privacy_IsPrivate: boolean;
    Privacy_IsPublic: boolean;
    Privacy_IsOpen: boolean;
    Privacy_IsAtLeastPublic: boolean;
    Privacy_IsSemiPrivate: boolean;
    Privacy_IsSemiPrivateBio: boolean;
    PhotoData?: {
        path: string;
        url: string;
        file: string;
        dir: string;
        width: number;
        height: number;
        orig_width: number;
        orig_height: number;
    };
    Mother: number;
    Father: number;
    marriage_location: string;
    marriage_date: string;
    Parents?: {
        [key: string]: Person;
    };
    Children?: {
        [key: string]: Person;
    };
    Spouses?: {
        [key: string]: Person;
    };
    Siblings?: {
        [key: string]: Person;
    };
    bio?: string;
    bioHTM?: string;
}
export declare type PersonField = 'Id' | 'PageId' | 'Name' | 'IsPerson' | 'FirstName' | 'MiddleName' | 'MiddleInitial' | 'LastNameAtBirth' | 'LastNameCurrent' | 'Nicknames' | 'LastNameOther' | 'RealName' | 'Prefix' | 'Suffix' | 'BirthDate' | 'DeathDate' | 'BirthLocation' | 'DeathLocation' | 'BirthDateDecade' | 'DeathDateDecade' | 'Gender' | 'Photo' | 'IsLiving' | 'Touched' | 'Created' | 'Privacy' | 'Manager' | 'HasChildren' | 'NoChildren' | 'DataStatus' | 'IsRedirect' | 'TrustedList' | 'Managers' | 'Connected' | 'Categories' | 'Bio' | 'Father' | 'Mother' | 'Derived.LongName';
/** Format of the biography field. */
export declare type BioFormat = 'wiki' | 'html' | 'both';
/**
 * WikiTree API getPerson request.
 *
 * See also: https://github.com/wikitree/wikitree-api/blob/main/getPerson.md
 */
export interface GetPersonRequest {
    action: 'getPerson';
    key: string;
    bioFormat?: BioFormat;
    fields?: string;
    resolveRedirect?: '1';
}
/**
 * WikiTree API getAncestors request.
 *
 * See also: https://github.com/wikitree/wikitree-api/blob/main/getAncestors.md
 */
export interface GetAncestorsRequest {
    action: 'getAncestors';
    key: string;
    depth?: number;
    bioFormat?: BioFormat;
    fields?: string;
    resolveRedirect?: '1';
}
/**
 * WikiTree API getDescendants request.
 *
 * See also: https://github.com/wikitree/wikitree-api/blob/main/getDescendants.md
 */
export interface GetDescendantsRequest {
    action: 'getDescendants';
    key: string;
    depth?: number;
    bioFormat?: BioFormat;
    fields?: string;
    resolveRedirect?: '1';
}
/**
 * WikiTree API getRelatives request.
 *
 * See also: https://github.com/wikitree/wikitree-api/blob/main/getRelatives.md
 */
export interface GetRelativesRequest {
    action: 'getRelatives';
    keys: string;
    getParents?: 'true';
    getChildren?: 'true';
    getSpouses?: 'true';
    getSiblings?: 'true';
    bioFormat?: BioFormat;
    fields?: string;
}
/** WikiTree API clientLogin request. */
export interface ClientLoginRequest {
    action: 'clientLogin';
    authcode: string;
}
export declare type WikiTreeRequest = ClientLoginRequest | GetPersonRequest | GetAncestorsRequest | GetDescendantsRequest | GetRelativesRequest;
/** WikiTree API clientLogin response. */
export interface ClientLoginResponse {
    result: string;
    username: string;
}
