import { BioFormat, ClientLoginResponse, Person, PersonField, WikiTreeRequest } from './wikitree_types'; /** Wraps an error returned from the WikiTree API. */ export declare class WikiTreeError extends Error { constructor(message: string); } export interface WikiTreeAuthentication { cookies: string; } /** Additional API options common to all requests. */ export interface ApiOptions { /** Authentication credentials as returned by the login() function. */ auth?: WikiTreeAuthentication; /** Alternative API URL. */ apiUrl?: string; /** Application id used for statistical purposes. */ appId?: string; } /** Sends a request to the WikiTree API. Returns the raw response. */ export declare function fetchWikiTree(request: WikiTreeRequest, options?: ApiOptions): Promise; /** Sends a request to the WikiTree API. Returns the parsed response JSON. */ export declare function wikiTreeGet(request: WikiTreeRequest, options?: ApiOptions): Promise; /** Optional arguments for the GetPerson API call. */ export interface GetPersonArgs { bioFormat?: BioFormat; fields?: Array | '*'; resolveRedirect?: boolean; } /** * Retrieves a single person record from WikiTree. * * See also: https://github.com/wikitree/wikitree-api/blob/main/getPerson.md */ export declare function getPerson(key: string, args?: GetPersonArgs, options?: ApiOptions): Promise; /** Optional arguments for the GetAncestors API call. */ interface GetAncestorsArgs { depth?: number; bioFormat?: BioFormat; fields?: Array | '*'; resolveRedirect?: boolean; } /** * Retrieves ancestors from WikiTree for the given person ID. * * See also: https://github.com/wikitree/wikitree-api/blob/main/getAncestors.md */ export declare function getAncestors(key: string, args?: GetAncestorsArgs, options?: ApiOptions): Promise; /** Optional arguments for the GetRelatives API call. */ export interface GetRelativesArgs { getParents?: boolean; getChildren?: boolean; getSpouses?: boolean; getSiblings?: boolean; bioFormat?: BioFormat; fields?: Array | '*'; } /** Optional arguments for the GetDescendants API call. */ export interface GetDescendantsArgs { depth?: number; bioFormat?: BioFormat; fields?: Array | '*'; resolveRedirect?: boolean; } /** * Retrieves descendants from WikiTree for the given person ID. * * See also: https://github.com/wikitree/wikitree-api/blob/main/getDescendants.md */ export declare function getDescendants(key: string, args?: GetDescendantsArgs, options?: ApiOptions): Promise; /** * Retrieves relatives from WikiTree for the given array of person IDs. * If a key does not exist or is inaccessible, it is omitted in the result. * * See also: https://github.com/wikitree/wikitree-api/blob/main/getRelatives.md */ export declare function getRelatives(keys: string[], args?: GetRelativesArgs, options?: ApiOptions): Promise; /** Optional arguments for the GetPeople API call. */ export interface GetPeopleArgs { siblings?: boolean; ancestors?: number; descendants?: number; nuclear?: number; minGeneration?: number; limit?: number; start?: number; bioFormat?: BioFormat; fields?: Array | '*'; } /** * Retrieves relatives from WikiTree for the given array of person IDs. * * See also: https://github.com/wikitree/wikitree-api/blob/main/getPeople.md */ export declare function getPeople(keys: string[], args?: GetPeopleArgs, options?: ApiOptions): Promise; /** * Returns the logged in user name or undefined if not logged in. * * In the browser, call this function without arguments. * This is not an authoritative answer. The result of this function relies on * the cookies set on the apps.wikitree.com domain under which this application * is hosted. The authoritative source of login information is in cookies set on * the api.wikitree.com domain. * * In Node.js, call this function with the auth parameter. This is an * authoritative answer because the login flow is under control of the * wikitree-js library. */ export declare function getLoggedInUserName(auth?: WikiTreeAuthentication): string | undefined; /** * Navigates to WikiTree login screen at https://api.wikitree.com/api.php with * the specified return URL. */ export declare function navigateToLoginPage(returnUrl: string): void; export declare function clientLogin(authcode: string, options?: ApiOptions): Promise; /** * Logs in to WikiTree returning authentication credentials. * This function will not work in the browser because it handles cookies directly. * Throws an exception if login fails. */ export declare function login(email: string, password: string, options?: ApiOptions): Promise; export {};