import { ConfigurationSection, ContextSection, PipelineSection, QuerySection, SearchHubSection } from '../../state/state-sections.js';
export declare const getLanguage: (state: ConfigurationSection) => string;
export type StateNeededByBaseAnalyticsProvider = ConfigurationSection & Partial<SearchHubSection & PipelineSection & QuerySection & ContextSection>;
export declare abstract class BaseAnalyticsProvider<T extends StateNeededByBaseAnalyticsProvider> {
    protected getState: () => T;
    protected readonly state: T;
    constructor(getState: () => T);
    abstract getSearchUID(): string;
    getLanguage(): string;
    getBaseMetadata(): Record<string, string | string[]>;
    getOriginContext(): string;
    getOriginLevel1(): string;
    getOriginLevel2(): string;
    getOriginLevel3(): string;
    getIsAnonymous(): boolean;
}
