import type { IStreamLogger } from '../../PSAgentLogger'; import type { IBackendEndpoints } from '../endpoints.interface'; import type { BackendService, ServiceTokenOptions, ServiceUrls } from '../types'; import type { IAgent } from './IAgent'; import type { IEmbeddings } from './IEmbeddings'; import type { ILLM } from './ILLM'; import type { IModelRegistry } from './IModelRegistry'; export declare enum BackendProvider { Ent = "ent" } /** Caller/config context for constructing a backend. */ export interface IBackendContext { /** Backend provider implementation. Defaults to BACKEND_PROVIDER env var or ent. */ provider?: BackendProvider; /** Fixed bearer token for API calls. */ token?: string; /** Per-call token resolver; takes precedence over `token` when provided. */ getToken?: () => Promise; /** Base URL for the PS API. Defaults to PS_API_URL. */ baseUrl?: string; /** Per-service base URL overrides. */ serviceUrls?: ServiceUrls; /** Optional app token sent as X-App-Authorization. */ appToken?: string; /** Optional user identifier sent as x-user-identifier. */ userIdentifier?: string; /** Extra headers merged into agent-service requests. */ additionalHeaders?: Record; /** Logger used for retry warnings and error logging. */ log?: IStreamLogger; } export interface IServiceTokenResponse { token: string; expiresAt: string; } export interface IBackend { endpoints: IBackendEndpoints; agent: IAgent; llm: ILLM; embeddings: IEmbeddings; modelRegistry: IModelRegistry; getBaseUrl: (service?: BackendService) => string; getServiceToken: (options?: ServiceTokenOptions) => Promise; }