import { type ComponentType, type ReactNode } from "react";
/**
 * @internal
 */
export type TelemetryEvent = "multiple-users-deleted" | "multiple-groups-deleted" | "group-deleted" | "user-deleted" | "group-created" | "user-detail-updated" | "group-detail-updated" | "groups-added-to-single-user" | "groups-added-to-multiple-users" | "users-added-to-single-group" | "users-added-to-multiple-groups" | "permission-added-to-single-user" | "permission-added-to-single-group" | "permission-added-to-multiple-users" | "permission-added-to-multiple-groups" | "user-permission-changed-to-hierarchy" | "user-permission-changed-to-single-workspace" | "group-permission-changed-to-hierarchy" | "group-permission-changed-to-single-workspace" | "user-permission-changed-to-view" | "group-permission-changed-to-view" | "user-permission-changed-to-view-save-views" | "group-permission-changed-to-view-save-views" | "user-permission-changed-to-view-export" | "group-permission-changed-to-view-export" | "user-permission-changed-to-view-export-save-views" | "group-permission-changed-to-view-export-save-views" | "user-permission-changed-to-analyze" | "group-permission-changed-to-analyze" | "user-permission-changed-to-analyze-export" | "group-permission-changed-to-analyze-export" | "user-permission-changed-to-manage" | "group-permission-changed-to-manage" | "user-data-source-permission-changed-to-use" | "group-data-source-permission-changed-to-use" | "user-data-source-permission-changed-to-manage" | "group-data-source-permission-changed-to-manage" | "user-role-changed-to-admin" | "user-role-changed-to-member";
/**
 * @internal
 */
export type TrackEventCallback = (event: TelemetryEvent) => void;
export interface ITelemetryProviderProps {
    trackEvent?: TrackEventCallback;
    children?: ReactNode;
}
export declare function TelemetryProvider({ trackEvent, children }: ITelemetryProviderProps): import("react/jsx-runtime").JSX.Element;
export declare const useTelemetry: () => TrackEventCallback;
/**
 * @internal
 */
export interface IWithTelemetryProps {
    onEvent: TrackEventCallback;
}
export declare function withTelemetry<T extends IWithTelemetryProps>(WrappedComponent: ComponentType<T>): {
    (props: T): import("react/jsx-runtime").JSX.Element;
    displayName: string | undefined;
};
//# sourceMappingURL=TelemetryContext.d.ts.map