/** * QuickBooks Online API Client with retry logic and error handling */ import { QBOConfig } from '../types'; /** * QuickBooks Online API Client */ export declare class QBOApiClient { private axiosInstance; private tokens; private readonly baseUrl; private readonly authUrl; private readonly qboConfig; private tokenRefreshPromise?; constructor(qboConfig?: QBOConfig); /** * Ensure we have a valid access token */ private ensureValidToken; /** * Refresh the OAuth2 access token */ private refreshAccessToken; /** * Make a GET request to QuickBooks API */ get(endpoint: string, params?: any): Promise; /** * Make a POST request to QuickBooks API */ post(endpoint: string, data: any): Promise; /** * Make a PUT request to QuickBooks API */ put(endpoint: string, data: any): Promise; /** * Make a DELETE request to QuickBooks API */ delete(endpoint: string): Promise; /** * Execute a query using QuickBooks Query Language */ query(query: string): Promise; /** * Send an email for an entity (invoice, estimate, etc.) */ sendEmail(entityType: string, entityId: string, email?: string): Promise; /** * Download a PDF for an entity */ downloadPDF(entityType: string, entityId: string): Promise; /** * Get company info */ getCompanyInfo(): Promise; /** * Get current user info */ getCurrentUser(): Promise; /** * Batch operations */ batch(operations: Array<{ bId: string; operation: 'create' | 'update' | 'query' | 'delete'; entity?: string; data?: any; query?: string; }>): Promise; /** * Get API limits and usage */ getApiLimits(): Promise<{ remaining: number; limit: number; reset: Date; }>; } //# sourceMappingURL=client.d.ts.map