import { Client } from '../client'; import { BaseError } from '../errors'; import { UriHelper } from '../uri-helper'; import { ThBaseHandler } from '../base'; declare enum AggregationWindow { HOURLY = "hourly", DAILY = "daily", WEEKLY = "weekly", MONTHLY = "monthly", QUARTERLY = "quarterly", YEARLY = "yearly" } export interface AnalyticsOptions { user?: string; base?: string; } export interface AnalyticsQuery { compare?: boolean; branch?: string; currency: string; end: Date; start: Date; } export interface AnalyticsRevenueTopProductsQuery extends AnalyticsQuery { orderBy?: string; orderDirection?: string; } export interface AnalyticsResponse { data: { axisLabels?: string[]; periods: AnalyticsResponsePeriods; series: AnalyticsResponseSeries[]; window: AggregationWindow; }; } interface AnalyticsResponsePeriods { current: { end: Date; start: Date; }; previous: { end: Date; start: Date; }; } interface AnalyticsResponseSeries { period: 'current' | 'previous'; data: number[]; total: number; unit: string; } export declare class Analytics extends ThBaseHandler { static baseEndpoint: string; endpoint: string; http: Client; options: AnalyticsOptions; uriHelper: UriHelper; constructor(options: AnalyticsOptions, http: Client); getRevenue(query?: AnalyticsQuery): Promise; getRevenueAverage(query?: AnalyticsQuery): Promise; getRevenueTopProducts(query?: AnalyticsRevenueTopProductsQuery): Promise; getRevenuePaymentTypes(query?: AnalyticsQuery): Promise; getRevenueTopStaff(query?: AnalyticsQuery): Promise; getOpenPurchaseOrdersCount(query?: AnalyticsQuery): Promise; getOpenPurchaseOrdersExpense(query?: AnalyticsQuery): Promise; getProductsReturnRate(query?: AnalyticsQuery): Promise; getProductsTopGroups(query?: AnalyticsQuery): Promise; getCartItemsAverage(query?: AnalyticsQuery): Promise; } export declare class AnalyticsGetRevenueFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class AnalyticsGetRevenueAverageFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class AnalyticsGetRevenueTopProductsFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class AnalyticsGetRevenuePaymentTypesFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class AnalyticsGetOpenPurchaseOrdersCountFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class AnalyticsGetOpenPurchaseOrdersExpenseFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class AnalyticsGetProductsReturnRateFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class AnalyticsGetProductsTopGroupsFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class AnalyticsGetCartItemsAverageFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class AnalyticsGetRevenueTopStaffFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export {};