import { AxiosInstance } from 'axios'; import { TokopediaClientConfig } from './config'; import ProductModule from './modules/product'; import ChatModule from './modules/chat'; import LogisticModule from './modules/logistic'; import OrderModule from './modules/order'; import ShopModule from './modules/shop'; import StatisticModule from './modules/statistic'; import WebhookModule from './modules/webhook'; export interface AuthenticateResponse { access_token: string; expires_in: number; token_type: string; } export default class TokopediaClient { protected client: AxiosInstance; protected config: TokopediaClientConfig; protected token: AuthenticateResponse; product: ProductModule; chat: ChatModule; logistic: LogisticModule; order: OrderModule; shop: ShopModule; statistic: StatisticModule; webhook: WebhookModule; private ready; isReady(): boolean; constructor(config: TokopediaClientConfig); private initialize; validateConfig(): void; authenticate(): Promise; }