import "reflect-metadata"; import { IClientOptions } from "./interfaces"; 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 { JSONObject } from "./types"; import { IResourceEntity, IResourceFactory } from "./interfaces"; import { IAccountFactory } from "./api/factories/AccountFactory"; import { ICompanyFactory } from "./api/factories/CompanyFactory"; import { IContactFactory } from "./api/factories/ContactFactory"; import { ILeadFactory } from "./api/factories/LeadFactory"; import { ICompany } from "./api/models/Company"; import { IContact } from "./api/models/Contact"; import { ILead } from "./api/models/Lead"; import { IUserFactory } from "./api/factories/UserFactory"; import { IUser } from "./api/models/User"; export declare type IClientEntity = new (attributes?: JSONObject) => T; /** * Основной класс библиотеки * */ export declare class Client extends EventEmitter { readonly token: IToken; readonly environment: IEnvironment; readonly request: IClientRequest; readonly connection: IConnection; readonly auth: IAuth; readonly Lead: IClientEntity; readonly User: IClientEntity; readonly Contact: IClientEntity; readonly Company: IClientEntity; readonly account: IAccountFactory; readonly users: IUserFactory; readonly leads: ILeadFactory; readonly contacts: IContactFactory; readonly companies: ICompanyFactory; constructor(options: IClientOptions); /** * Привязывает конструктор сущностей * @param factory - фабрика сущностей * @returns функция конструктор для вызова new client[Entity] * */ protected assignEntity>>(factory: IResourceFactory): new (attributes?: JSONObject | undefined) => T; }