import { App, Company, Config, Contact, Database, Interaction, TemplateEmail } from './types'; /** * Client for the CrmApiServer */ export declare class CrmApiClient { baseUrl: string; constructor(baseUrl: string); resetDatabase(initialData: Database): Promise; searchCompanies(filter: string): Promise; findCompany(name: string): Promise; findFollowups(startDate: string, endDate: string): Promise<(Interaction & { company: string; })[]>; findInteractions(startDate: string, endDate: string): Promise<(Interaction & { company: string; })[]>; updateInteraction(companyName: string, index: number, attributes: Partial): Promise; doneInteraction(companyName: string, index: number): Promise; updateCompany(name: string, attributes: Partial): Promise; dump(): Promise; allCompanies(): Promise; addCompany(companyData: Company): Promise; updateContact(email: string, contactData: Contact & { company: string; }): Promise; addInteraction(interaction: Interaction & { company: string; }): Promise; addContact(contactData: Contact & { company: string; }): Promise; addApp(appData: App & { company: string; }): Promise; updateApp(appName: string, attributes: Partial): Promise; findContactByEmail(email: string): Promise; findAppByName(appName: string): Promise; findAppByEmail(appName: string): Promise; getConfig(): Promise; updateConfig(attributes: Partial): Promise; /** * Fetch all templates * * @param renderFor - render all templates for the provided contact (specify an email, app name or company name) */ getTemplates(renderFor?: string): Promise<{ templates: TemplateEmail[]; }>; addTemplate(attributes: TemplateEmail): Promise; renderTemplate(template: TemplateEmail, filter: string): Promise; } export declare function crmApiClient(url?: string): CrmApiClient;