import { CrmApiClient } from "../../crmApiClient"; import { App, Company, Config, Contact, Database, Interaction } from "../../types"; import { DatabaseAdapter, DatabaseSession } from "../types"; /** * Use a remote CRM API server */ export declare class RemoteApiAdapter implements DatabaseAdapter { client: CrmApiClient; constructor(url: string); create(initialData: Database): Promise; open(): Promise; } export declare class RemoteApiSession implements DatabaseSession { client: CrmApiClient; constructor(client: CrmApiClient); addCompany(company: Company): Promise; close(): Promise; dump(): Promise; private catch404; findAppByName(appName: string): Promise<{ company: Company; app: App; } | undefined>; findAppByEmail(email: string): Promise<{ company: Company; app: App; } | undefined>; findCompanyByName(name: string): Promise; findContactByEmail(email: string): Promise<{ company: Company; contact: Contact; } | undefined>; findFollowups(startDate: string, endDate: string): Promise<(Interaction & { company: string; })[]>; findInteractions(startDate: string, endDate: string): Promise<(Interaction & { company: string; })[]>; loadConfig(): Promise; searchCompanies(filter: string): Promise; updateCompany(name: string, attributes: Partial): Promise; updateConfig(attributes: Partial): Promise; /** Fetch the company from the "company" field, and delete that field */ private companyOf; private catchErrors; }