import { Relay } from '@coveo/relay';
import { AnalyticsClientSendEventHook } from 'coveo.analytics';
import { Logger } from 'pino';
import { GeneratedAnswerAPIClient } from '../api/generated-answer/generated-answer-client.js';
import { PreprocessRequest } from '../api/preprocess-request.js';
import { validatePayloadAndThrow } from '../utils/validate-payload.js';
import { EngineConfiguration } from './engine-configuration.js';
import { NavigatorContext } from './navigatorContextProvider.js';
export interface ClientThunkExtraArguments<T, K = GeneratedAnswerAPIClient> extends ThunkExtraArguments {
    apiClient: T;
    streamingClient?: K;
    relay: Relay;
    navigatorContext: NavigatorContext;
}
export interface ThunkExtraArguments {
    preprocessRequest?: PreprocessRequest;
    analyticsClientMiddleware: AnalyticsClientSendEventHook;
    logger: Logger;
    validatePayload: typeof validatePayloadAndThrow;
}
export declare function buildThunkExtraArguments(configuration: EngineConfiguration, logger: Logger): ThunkExtraArguments;
