import { IClientOptions } from "./interfaces/common"; import { EventEmitter } from "./common/EventEmitter"; import { IConnection } from './common/Connection'; import { IEnvironment } from "./common/Environment"; import { IClientRequest } from "./common/ClientRequest"; import { IAuth } from "./common/Auth"; import { IToken } from "./common/Token"; import { ILeadFactory } from "./api/factories/LeadFactory"; import { ILead } from "./api/activeRecords/Lead"; import { JSONObject } from "./types"; import { IClientConstructors, IResourceEntity, IResourceFactory } from "./interfaces/api"; import { IContact } from "./api/activeRecords/Contact"; import { IContactFactory } from "./api/factories/ContactFactory"; import { ICompanyFactory } from "./api/factories/CompanyFactory"; import { ICompany } from "./api/activeRecords/Company"; import { IFactoryConstructors } from "./api/factories"; import { IEntityConstructors } from "./api/activeRecords"; import { ITask } from "./api/activeRecords/Task"; import { ITaskFactory } from "./api/factories/TaskFactory"; export declare type IClientEntity = { new (attributes?: JSONObject): T; }; export interface IClient { constructors: IClientConstructors; getRequest(): IClientRequest; getFactoryConstructors(): IFactoryConstructors; getEntityConstructors(): IEntityConstructors; assignEntity>>(factory: IResourceFactory): IClientEntity; readonly token: IToken; readonly environment: IEnvironment; readonly request: IClientRequest; readonly connection: IConnection; readonly auth: IAuth; Lead: IClientEntity; Contact: IClientEntity; Company: IClientEntity; Task: IClientEntity; leads: ILeadFactory; contacts: IContactFactory; companies: ICompanyFactory; tasks: ITaskFactory; } /** * Основной класс библиотеки * */ export declare class Client extends EventEmitter implements IClient { readonly token: IToken; readonly environment: IEnvironment; readonly request: IClientRequest; readonly connection: IConnection; readonly auth: IAuth; readonly Lead: IClientEntity; readonly Contact: IClientEntity; readonly Company: IClientEntity; readonly Task: IClientEntity; readonly leads: ILeadFactory; readonly contacts: IContactFactory; readonly companies: ICompanyFactory; readonly tasks: ITaskFactory; constructor(options: IClientOptions); get constructors(): { factories: IFactoryConstructors; entities: { Lead: import("./types").TConstructor; Contact: import("./types").TConstructor; Company: import("./types").TConstructor; Tag: import("./types").TConstructor; }; }; getRequest(): IClientRequest; getFactoryConstructors(): IFactoryConstructors; getEntityConstructors(): { Lead: import("./types").TConstructor; Contact: import("./types").TConstructor; Company: import("./types").TConstructor; Tag: import("./types").TConstructor; }; /** * Привязывает конструктор сущностей * @param factory - фабрика сущностей * @returns функция конструктор для вызова new client[Entity] * */ assignEntity>>(factory: IResourceFactory): IClientEntity; }