import { EventEmitter } from '@angular/core';
import { SearchQuery } from './data-models';
import { AlSearchResultsQueryParamsV2, AlSearchGetV2, AlAdditionalSubmitParams } from '@al/search';
import { MenuItem } from 'primeng-lts/api';
import * as i0 from "@angular/core";
export interface AlDownloadQueueDeleteResponse {
    searchQueueLength: number;
    index: number;
    isCancelled: boolean;
    uuid: string | undefined;
}
export declare class AlDownloadQueueComponent {
    /**
     * Inputs, properties to handle visual behaviour
     */
    queuePosition: string;
    getResults: boolean;
    showPauseButton: boolean;
    showPlusButton: boolean;
    transformResults: boolean;
    invisibleMode: boolean;
    /**
     * Outputs
     */
    onDownloadResults: EventEmitter<any>;
    onTabChange: EventEmitter<SearchQuery>;
    onGetResults: EventEmitter<{
        results: void | AlSearchGetV2;
        searchItemFetchParams: AlSearchResultsQueryParamsV2 | undefined;
    }>;
    onAddSearch: EventEmitter<number>;
    onDeleteSearch: EventEmitter<AlDownloadQueueDeleteResponse>;
    onContinueSearch: EventEmitter<{
        isOnError: boolean;
    }>;
    onSharingSearch: EventEmitter<{
        searchId?: string;
        sharingType: string;
    }>;
    /**
     * Public variables
     */
    searchQueue: SearchQuery[];
    selectedIndex: number;
    activeSearch?: SearchQuery;
    shareMenuItems: MenuItem[];
    /**
     * Private variables
     */
    private accountId;
    constructor();
    ngOnInit(): void;
    /**
     * Resets component state to "factory defaults"
     */
    reset(): void;
    /**
     * Cancels the currently active search tab.
     */
    stopSearch(searchIndex?: number, remove?: boolean): Promise<void>;
    /**
     * Entry point to execute the search submit
     * @param accountId The account id under which the query is going to be submitted
     * @param query The raw query EM/SQL like string
     * @param additionalParameters Additional query params such as timerange, formatting, etc...
     */
    submitSearch(accountId: string, query: string, additionalParameters: AlAdditionalSubmitParams, resultsFetchParams: AlSearchResultsQueryParamsV2, shouldRetry?: boolean, uuid?: string): Promise<string | undefined>;
    executeSearch(accountId: string, queryId: string, resultsFetchParams: AlSearchResultsQueryParamsV2): void;
    cancelSearch(event: Event, searchIndex: number): Promise<void>;
    pauseSearch(event: Event, search: SearchQuery): void;
    downloadResults(event?: Event, search?: SearchQuery, type?: 'csv' | 'pcap'): Promise<void>;
    downloadSelectedRows(selectedIndexes: number[], search?: SearchQuery, type?: 'csv' | 'pcap'): Promise<void>;
    continueSearch(event?: Event, search?: SearchQuery): Promise<void>;
    selectSearch(index: number): void;
    viewResults(index?: number, resultsFetchParams?: AlSearchResultsQueryParamsV2, continueSearching?: boolean): Promise<void>;
    addSearch(statusLabel?: string): void;
    setFetchParams(resultsFetchParams: AlSearchResultsQueryParamsV2): void;
    shareSearch(type: string): void;
    static ɵfac: i0.ɵɵFactoryDef<AlDownloadQueueComponent, never>;
    static ɵcmp: i0.ɵɵComponentDefWithMeta<AlDownloadQueueComponent, "al-download-queue", never, { "queuePosition": "queuePosition"; "getResults": "getResults"; "showPauseButton": "showPauseButton"; "showPlusButton": "showPlusButton"; "transformResults": "transformResults"; "invisibleMode": "invisibleMode"; }, { "onDownloadResults": "onDownloadResults"; "onTabChange": "onTabChange"; "onGetResults": "onGetResults"; "onAddSearch": "onAddSearch"; "onDeleteSearch": "onDeleteSearch"; "onContinueSearch": "onContinueSearch"; "onSharingSearch": "onSharingSearch"; }, never, never>;
}
