import { AxiosRequestConfig, Method } from 'axios'; import * as gql from 'graphql'; import { Logger } from 'pino'; import { Dictionary } from 'ts-essentials'; import { type QueryPaginator } from './graphql/graphql'; import { Mutation, Schema } from './graphql/types'; import { Account, FarosClientConfig, Location, NamedQuery, Phantom, SecretName, UpdateAccount, UpdateWebhookEventStatus, WebhookEvent } from './types'; export declare const DEFAULT_AXIOS_CONFIG: AxiosRequestConfig; export declare const GRAPH_VERSION_HEADER = "x-faros-graph-version"; /** Faros API client **/ export declare class FarosClient { private readonly cfg; readonly logger: Logger; private readonly axiosConfig; private readonly api; readonly phantoms: Phantom; constructor(cfg: FarosClientConfig, logger?: Logger, axiosConfig?: AxiosRequestConfig); copy(cfg?: Partial, logger?: Logger, axiosConfig?: AxiosRequestConfig): FarosClient; tenant(): Promise; secretExists(name: string, group?: string): Promise; secrets(group?: string): Promise>; graphExists(graph: string): Promise; createGraph(graph: string): Promise; namedQuery(name: string): Promise; queryParameters(): Dictionary; private doGql; gql(graph: string, query: string, variables?: any): Promise; sendMutations(graph: string, mutations: Mutation[]): Promise; sendBulkMutations(graph: string, mutations: Mutation[]): Promise; rawGql(graph: string, query: string, variables?: any): Promise; gqlNoDirectives(graph: string, rawQuery: string, variables?: unknown): Promise; gqlSchema(graph: string): Promise; introspect(graph: string): Promise; geocode(...locations: string[]): Promise>; accounts(graph?: string): Promise>; updateAccount(update: UpdateAccount): Promise; nodeIterable(graph: string, rawQuery: string, pageSize?: number, paginator?: QueryPaginator, args?: Map): AsyncIterable; updateWebhookEventStatus(status: UpdateWebhookEventStatus): Promise; getWebhookEvent(webhookId: string, eventId: string): Promise; /** * Generic method for making requests to the Faros API. * @param method HTTP request method * @param path endpoint path * @param data request body * @param params request query params * @returns response body */ request(method: Method, path: string, data?: any, params?: any): Promise; /** * Sets the API key to use for requests. * @param apiKey API key to use for requests */ setApiKey(apiKey: string): void; }