import { QBOQueryableEntityType, QBOReportEntityType, Tokens } from "./lib/types"; import { ListArgs, ListResponse } from "./list"; import { UpsertArgs, UpsertResponse } from "./upsert"; import { ReadArgs, ReadResponse } from "./read"; import { ReportArgs, ReportResponse } from "./report"; import "ts-err-as-value/globals"; import { QBOError } from "./lib/errors/error-classes"; export * from "./lib/types"; export * as QBOError from "./lib/errors/error-classes"; export type { Tokens, QBOQueryableEntityType, QBOReportEntityType, GetQBOQueryableEntityType, GetEntitySpecificReport } from "./lib/types"; export type { ReportArgs, ReportResponse } from "./report"; export type { ReadArgs, ReadResponse } from "./read"; export type { UpsertArgs, UpsertResponse } from "./upsert"; export type { ListArgs, ListResponse } from "./list"; export interface ClientArgs { client_id: string; client_secret: string; access_token: string; refresh_token: string; realm_id: string; max_timeout_in_ms?: number; use_sandbox?: boolean; /** @desc A custom implementation of fetch to use everywhere in this library instead of the global fetch. */ fetchFn?: typeof fetch; } export interface QboClient { refreshAccessToken(): Promise>; revokeAccess(tokenType: "REFRESH" | "ACCESS"): Promise>; get tokens(): Tokens; /** @desc Read one QBO entity of a given type by id */ read({ entity, entity_id, fetchFn }: ReadArgs): Promise, QBOError>>; /** @desc List QBO entities of a given type with optional query parameters */ list({ entity, opts, fetchFn }: ListArgs): Promise, QBOError>>; /** @desc Update if exists, otherwise insert one QBO entity of a given type */ upsert({ entity, record, fetchFn }: UpsertArgs): Promise, QBOError>>; /** @desc Query a QBO report of a given type with optional query parameters */ report({ entity, opts, fetchFn }: ReportArgs): Promise, QBOError>>; } export declare const client: ({ client_id, client_secret, access_token, refresh_token, realm_id, use_sandbox, max_timeout_in_ms, fetchFn }: ClientArgs) => Promise;