import { AnalyticsClientSendEventHook, InsightClientProvider, CoveoInsightClient } from 'coveo.analytics';
import { SearchEventRequest } from 'coveo.analytics/dist/definitions/events.js';
import { Logger } from 'pino';
import { SectionNeededForFacetMetadata } from '../../features/facets/facet-set/facet-set-analytics-actions-utils.js';
import { InsightAppState } from '../../state/insight-app-state.js';
import { ConfigurationSection, GeneratedAnswerSection, PipelineSection, QuerySection, SearchHubSection, SearchSection, TriggerSection } from '../../state/state-sections.js';
import { PreprocessRequest } from '../preprocess-request.js';
import { BaseAnalyticsProvider } from './base-analytics.js';
export type StateNeededByInsightAnalyticsProvider = ConfigurationSection & Partial<InsightAppState> & Partial<SearchHubSection & SearchSection & PipelineSection & QuerySection & TriggerSection & SectionNeededForFacetMetadata & GeneratedAnswerSection>;
export declare class InsightAnalyticsProvider extends BaseAnalyticsProvider<StateNeededByInsightAnalyticsProvider> implements InsightClientProvider {
    getSearchUID(): string;
    getPipeline(): string;
    getSearchEventRequestPayload(): Omit<SearchEventRequest, 'actionCause' | 'searchQueryUid'>;
    getFacetState(): import("coveo.analytics").FacetStateRequest[];
    getBaseMetadata(): Record<string, string | string[]>;
    getGeneratedAnswerMetadata(): {
        showGeneratedAnswer?: boolean | undefined;
    };
    private get queryText();
    private get responseTime();
    private mapResultsToAnalyticsDocument;
    private get numberOfResults();
}
interface ConfigureInsightAnalyticsOptions {
    logger: Logger;
    analyticsClientMiddleware?: AnalyticsClientSendEventHook;
    preprocessRequest?: PreprocessRequest;
    provider?: InsightClientProvider;
    getState(): StateNeededByInsightAnalyticsProvider;
}
export declare const configureInsightAnalytics: ({ logger, getState, analyticsClientMiddleware, preprocessRequest, provider, }: ConfigureInsightAnalyticsOptions) => CoveoInsightClient;
export {};
