import { DatabaseSession } from "./database"; import { App, Company, Config, Contact, Interaction, TemplateEmail } from "./types"; export declare function addCompany(database: DatabaseSession, company: Partial): Promise; export declare function editCompany(database: DatabaseSession, name: string, attributes: Partial): Promise; export declare function editContact(database: DatabaseSession, email: string, attributes: Partial): Promise; export declare function editApp(database: DatabaseSession, appName: string, attributes: Partial): Promise; export declare function addContact(database: DatabaseSession, attributes: Partial): Promise; export declare function addApp(database: DatabaseSession, app: Partial): Promise; export declare function addInteraction(database: DatabaseSession, interaction: Interaction & { company: string; }): Promise; export declare function editInteraction(database: DatabaseSession, companyName: string, index: number, attributes: Partial): Promise; export interface StaffDefinition { name: string; email: string; } export declare function addTemplate(database: DatabaseSession, template: TemplateEmail): Promise; export declare function addStaff(database: DatabaseSession, staff: StaffDefinition): Promise<{ [email: string]: string; } | { error: string; }>; export declare function editConfig(database: DatabaseSession, attributes: Partial): Promise; /** * Here are the available template fields. * * - {{EMAIL}} .............. Contact's raw email (example: user@example.com * - {{FULL_EMAIL}} ......... Contact's full email (example: Jon Snow ) * - {{FULL_NAME}} .......... Contact's full name (example: Henry Ford) * - {{NAME}} ............... Alias to {{FULL_NAME}} * - {{FIRST_NAME}} ......... Contact's first name * - {{LAST_NAME}} .......... Contact's last name * - {{FRIENDLY_NAME}} ...... Contact's first name, company name when unknown. * - {{APP_NAME}} ........... The appName * - {{APP_PLAN}} ........... The plan user's is registered to * - {{REGISTRATION_AGO}} ... Time since registration (example: 2 days ago) * - {{SUBSCRIPTION_AGO}} ... Time since subscription * - {{COMPANY_AGO}} ........ Time since first contact with the company * - {{COMPANY_NAME}} ....... Name of the company * - {{COMPANY_URL}} ........ Company's URL * - {{COMPANY_ADDRESS}} .... Company's website */ export declare function renderTemplateText(content: string, elements: { app?: App; contact?: Contact; company?: Company; }): string; /** * @param filter - Email, App Name or Company Name */ export declare function findContactByFilter(database: DatabaseSession, filter: string): Promise<{ app?: App; contact?: Contact; company?: Company; }>; export declare function renderTemplateEmail(email: TemplateEmail, elements: { app?: App; contact?: Contact; company?: Company; }): TemplateEmail; export declare function renderTemplateEmailForContact(database: DatabaseSession, filter: string, email: TemplateEmail): Promise; declare const _default: { addCompany: typeof addCompany; addApp: typeof addApp; addContact: typeof addContact; addInteraction: typeof addInteraction; addStaff: typeof addStaff; editApp: typeof editApp; editConfig: typeof editConfig; editCompany: typeof editCompany; editContact: typeof editContact; editInteraction: typeof editInteraction; renderTemplateText: typeof renderTemplateText; }; export default _default;