n8n
Version:
n8n Workflow Automation Tool
50 lines (49 loc) • 2.11 kB
TypeScript
import { LicenseState } from '@n8n/backend-common';
import { GlobalConfig } from '@n8n/config';
import { UserRepository } from '@n8n/db';
import { InstanceSettings } from 'n8n-core';
import type { ICredentialDataDecryptedObject } from 'n8n-workflow';
import type { AiGatewayConfigDto, AiGatewayUsageResponse } from '@n8n/api-types';
import { License } from '../license';
import { OwnershipService } from '../services/ownership.service';
import { UrlService } from '../services/url.service';
interface GatewayWalletResponse {
budget: number;
balance: number;
}
export declare class AiGatewayService {
private readonly globalConfig;
private readonly license;
private readonly licenseState;
private readonly instanceSettings;
private readonly ownershipService;
private readonly userRepository;
private readonly urlService;
private readonly tokenCache;
private readonly TOKEN_CACHE_MAX_SIZE;
private readonly pendingTokenRequests;
private gatewayConfig;
private configFetchedAt;
private static readonly CONFIG_TTL_MS;
private static readonly GATEWAY_PATH_PREFIX;
constructor(globalConfig: GlobalConfig, license: License, licenseState: LicenseState, instanceSettings: InstanceSettings, ownershipService: OwnershipService, userRepository: UserRepository, urlService: UrlService);
private resolveUserId;
getSyntheticCredential({ credentialType, userId, workflowId, projectId, executionId, }: {
credentialType: string;
userId: string | undefined;
workflowId?: string;
projectId?: string;
executionId?: string;
}): Promise<ICredentialDataDecryptedObject>;
getUsage(userId: string, offset: number, limit: number): Promise<AiGatewayUsageResponse>;
getWallet(userId: string): Promise<GatewayWalletResponse>;
private parseWalletResponse;
private buildGatewayUrl;
private requireBaseUrl;
private isConfigStale;
getGatewayConfig(): Promise<AiGatewayConfigDto>;
private buildGatewayCredentialsHeaders;
private getOrFetchToken;
private fetchAndCacheToken;
}
export {};