import type { NormalizedSuperJsonDocument, ProfileDocumentNode } from '@superfaceai/ast'; import type { IConfig, ICrypto, IFileSystem, ILogger, IProfile, ITimers } from '../../interfaces'; import type { ISandbox } from '../../interfaces/sandbox'; import type { SuperCache } from '../../lib'; import type { Events, Interceptable } from '../events'; import type { AuthCache, IFetch } from '../interpreter'; import type { IBoundProfileProvider } from '../profile-provider'; import { UseCase } from '../usecase'; import type { ProfileConfiguration } from './profile-configuration'; export declare abstract class ProfileBase { readonly configuration: ProfileConfiguration; readonly ast: ProfileDocumentNode; protected readonly events: Events; protected readonly superJson: NormalizedSuperJsonDocument | undefined; protected readonly config: IConfig; protected readonly sandbox: ISandbox; protected readonly timers: ITimers; protected readonly fileSystem: IFileSystem; protected readonly boundProfileProviderCache: SuperCache<{ provider: IBoundProfileProvider; expiresAt: number; }>; protected readonly crypto: ICrypto; protected readonly fetchInstance: IFetch & Interceptable & AuthCache; protected readonly logger?: ILogger | undefined; constructor(configuration: ProfileConfiguration, ast: ProfileDocumentNode, events: Events, superJson: NormalizedSuperJsonDocument | undefined, config: IConfig, sandbox: ISandbox, timers: ITimers, fileSystem: IFileSystem, boundProfileProviderCache: SuperCache<{ provider: IBoundProfileProvider; expiresAt: number; }>, crypto: ICrypto, fetchInstance: IFetch & Interceptable & AuthCache, logger?: ILogger | undefined); getConfiguredProviders(): string[]; } export declare class Profile extends ProfileBase implements IProfile { getUseCase(name: string): UseCase; }