import type { MapDocumentNode, NormalizedProfileProviderSettings, ProfileDocumentNode, ProviderJson, SecurityValues } from '@superfaceai/ast'; import type { IConfig, ICrypto, ILogger, MapInterpreterError, ProfileParameterError } from '../../interfaces'; import type { ISandbox } from '../../interfaces/sandbox'; import type { NonPrimitive, Result, SDKExecutionError, UnexpectedError } from '../../lib'; import type { Events, Interceptable } from '../events'; import type { AuthCache, IFetch, SecurityConfiguration } from '../interpreter'; import type { IServiceSelector } from '../services'; export interface IBoundProfileProvider { perform(usecase: string, input?: TInput, parameters?: Record, securityValues?: SecurityValues[]): Promise>; } export declare class BoundProfileProvider implements IBoundProfileProvider { private readonly profileAst; private readonly mapAst; private readonly provider; private readonly config; private readonly sandbox; readonly configuration: { services: IServiceSelector; profileProviderSettings?: NormalizedProfileProviderSettings; security: SecurityConfiguration[]; parameters?: Record; }; private readonly crypto; private readonly fetchInstance; private readonly logger?; private profileValidator; private readonly logSensitive; constructor(profileAst: ProfileDocumentNode, mapAst: MapDocumentNode, provider: ProviderJson, config: IConfig, sandbox: ISandbox, configuration: { services: IServiceSelector; profileProviderSettings?: NormalizedProfileProviderSettings; security: SecurityConfiguration[]; parameters?: Record; }, crypto: ICrypto, fetchInstance: IFetch & Interceptable & AuthCache, logger?: ILogger | undefined, events?: Events); /** * Performs the usecase while validating input and output against the profile definition. * * Note that the `TInput` and `TResult` types cannot be checked for compatibility with the profile definition, so the caller * is responsible for ensuring that the cast is safe. */ perform(usecase: string, input?: TInput, parameters?: Record, securityValues?: SecurityValues[]): Promise>; private composeInput; private mergeParameters; }