import { Result } from '../model/Result';
import { GasPayload } from '@atlaskit/analytics-gas-types';
import { ReferralContextIdentifiers } from '../components/GlobalQuickSearchWrapper';
import { ABTest } from '../api/CrossProductSearchClient';
export declare type ScreenEventSafeGasPayload = GasPayload & {
    name: string;
};
export declare const DEFAULT_GAS_SOURCE = "globalSearchDrawer";
export declare const DEFAULT_GAS_CHANNEL = "fabric-elements";
export declare const DEFAULT_GAS_ATTRIBUTES: {
    packageName: string;
    packageVersion: string;
    componentName: string;
};
export declare const GLOBAL_SEARCH_SCREEN_NAME = "globalSearchDrawer";
export interface ShownAnalyticsAttributes {
    resultCount: number;
    resultSectionCount: number;
    resultContext: ShownResultContextSection[];
    abTest?: ABTest;
}
export interface PerformanceTiming {
    elapsedMs: number;
    [key: string]: number;
}
export interface ShownResultContextSection {
    sectionId: string;
    results: ShownResultContextItem[];
}
export interface ShownResultContextItem {
    resultContentId: string;
    resultType?: string;
    containerId?: string;
    isRecentResult?: boolean;
}
export interface PostQueryShownAttributes extends ShownAnalyticsAttributes {
    queryWordCount: number;
    queryCharacterCount: number;
}
export interface ResultSelectedAnalyticsDetails {
    resultContentId: string;
    resultType: string;
    section: string;
    sectionIndex: number;
    globalIndex: number;
    indexWithinSection: number;
}
export declare const sanitizeSearchQuery: (query: string) => string;
export declare const sanitizeContainerId: (containerId?: string | undefined) => string;
/**
 * @param resultsArrays an ordered array of Result arrays, passed as arguments
 */
export declare function buildShownEventDetails(...resultsArrays: Result[][]): ShownAnalyticsAttributes;
export declare enum Screen {
    PRE_QUERY = "GlobalSearchPreQueryDrawer",
    POST_QUERY = "GlobalSearchPostQueryDrawer"
}
export declare function buildScreenEvent(screen: Screen, timesViewed: number, searchSessionId: string, referralContextIdentifiers?: ReferralContextIdentifiers): ScreenEventSafeGasPayload;
