amocrm-client
Version:
JS Library for AmoCRM
47 lines (46 loc) • 2.18 kB
TypeScript
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<T> = 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<ILead>;
readonly User: IClientEntity<IUser>;
readonly Contact: IClientEntity<IContact>;
readonly Company: IClientEntity<ICompany>;
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<T extends IResourceEntity<IResourceFactory<T>>>(factory: IResourceFactory<T>): new (attributes?: JSONObject | undefined) => T;
}