/**
 * Copyright (c) 2025-present, Goldman Sachs
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import type { TelemetryService } from '@finos/legend-application';
import { type V1_LiteDataContract, type V1_ContractUserEventRecord, type V1_EntitlementsLakehouseEnvironmentType } from '@finos/legend-graph';
import { type DATAPRODUCT_TYPE, type MarketplaceUserSession } from '@finos/legend-extension-dsl-data-product';
export declare enum LEGEND_MARKETPLACE_PAGE {
    HOME_PAGE = "Home Page",
    SEARCH_RESULTS_PAGE = "Search Results Page"
}
export declare enum CONTRACT_ACTION {
    APPROVED = "approved",
    DENIED = "denied"
}
export declare enum ICON_TOOLBAR_TYPE {
    USER = "User Icon",
    HELP = "Help Icon"
}
type MarketplaceDataProductOrigin_TelemetryData = {
    type: DATAPRODUCT_TYPE;
    groupId?: string | undefined;
    artifactId?: string | undefined;
    versionId?: string | undefined;
    path?: string | undefined;
};
type MarketplaceDataProduct_TelemetryData = {
    origin?: MarketplaceDataProductOrigin_TelemetryData | undefined;
    dataProductId?: string | undefined;
    deploymentId?: number | undefined;
    name?: string | undefined;
    environmentClassification?: V1_EntitlementsLakehouseEnvironmentType | undefined;
};
export declare class LegendMarketplaceTelemetryHelper {
    private static getOrCreateUserSession;
    private static updateSearchSessionId;
    static clearSearchSessionId(): MarketplaceUserSession;
    private static updateEventId;
    static logEvent_ClickingDataProductCard(telemetryService: TelemetryService, dataProductData: MarketplaceDataProduct_TelemetryData, clickedFrom: LEGEND_MARKETPLACE_PAGE): void;
    static logEvent_SearchQuery(telemetryService: TelemetryService, query: string | undefined, useProducerSearch: boolean, searchedFrom: LEGEND_MARKETPLACE_PAGE, useFieldSearch?: boolean): void;
    static logEvent_ActionDataContracts(telemetryService: TelemetryService, selectedContracts: V1_ContractUserEventRecord[], pendingTaskContracts: V1_LiteDataContract[] | undefined, action: CONTRACT_ACTION, actionTakenBy: string, errors: string[] | undefined): void;
    static logEvent_LoadDataProduct(telemetryService: TelemetryService, dataProductData: MarketplaceDataProduct_TelemetryData, error: string | undefined): void;
    static logEvent_LoadSDLCDataProduct(telemetryService: TelemetryService, dataProductData: MarketplaceDataProduct_TelemetryData, error: string | undefined): void;
    static logEvent_LoadTerminal(telemetryService: TelemetryService, terminalId: string, error: string | undefined): void;
    static logEvent_LoadLegacyDataProduct(telemetryService: TelemetryService, groupId: string, artifactId: string, versionId: string, path: string, error: string | undefined): void;
    static logEvent_ClickHeadertab(telemetryService: TelemetryService, tabTitle: string): void;
    static logEvent_ToggleProducerSearch(telemetryService: TelemetryService, isEnabled: boolean): void;
    static logEvent_ToggleFieldSearch(telemetryService: TelemetryService, isEnabled: boolean): void;
    static logEvent_ToggleThemeMode(telemetryService: TelemetryService, isDarkMode: boolean): void;
    static logEvent_ToggleViewMode(telemetryService: TelemetryService, viewMode: string): void;
    static logEvent_ToggleServicesViewMode(telemetryService: TelemetryService, viewMode: string): void;
    static logEvent_ClickToolbarMenu(telemetryService: TelemetryService, iconSource: ICON_TOOLBAR_TYPE, menuTitle: string): void;
    static logEvent_SearchAutosuggestSelection(telemetryService: TelemetryService, query: string, suggestionType: string): void;
    static logEvent_DismissHomePageBanner(telemetryService: TelemetryService, bannerId: string): void;
    static logEvent_SubmitFeedback(telemetryService: TelemetryService, originPage: string, rating: number): void;
    static logEvent_ClickQueryDataProduct(telemetryService: TelemetryService, groupId: string, artifactId: string, versionId: string, path: string, executionContextKey: string): void;
    static logEvent_ClickOpenServiceQuery(telemetryService: TelemetryService, groupId: string, artifactId: string, versionId: string, servicePath: string): void;
    static logEvent_ClickQuickStartExtensionTab(telemetryService: TelemetryService, groupId: string, artifactId: string, versionId: string, path: string, tabKey: string, executableTitle: string): void;
    static logEvent_ApplySearchFilter(telemetryService: TelemetryService, filterType: string, filterValue: string, action: 'select' | 'deselect', searchQuery: string | undefined): void;
    static logEvent_ClearSearchFilters(telemetryService: TelemetryService, searchQuery: string | undefined): void;
    static logEvent_ShowAllDataProducts(telemetryService: TelemetryService, searchQuery: string | undefined): void;
    static logEvent_SearchServices(telemetryService: TelemetryService, query: string): void;
    static logEvent_SortServices(telemetryService: TelemetryService, sortValue: string): void;
    static logEvent_FilterServices(telemetryService: TelemetryService, filterType: string, filterValue: string, action: 'add' | 'remove' | 'clear'): void;
    static logEvent_ClickServiceCard(telemetryService: TelemetryService, pattern: string, title: string): void;
}
export {};
//# sourceMappingURL=LegendMarketplaceTelemetryHelper.d.ts.map