import type { OperationModel, Sample } from '../redoc-lib'; export interface LanguageSwitchProps { operation: OperationModel; sample: Sample; } export interface PanelToggleProps { operation: OperationModel; isExpanded: boolean; panelType: PanelToggleEvent['panelType']; } export interface CodeSampleCopyProps { operation: OperationModel; lang?: string; label?: string; type: 'request' | 'response'; exampleId?: string; } export interface TargetServerSwitchProps { operation: OperationModel; serverUrl: string; } export declare enum AnalyticsEventType { CodeSampleLanguageSwitched = "CodeSampleLanguageSwitched", CodeSampleCopied = "CodeSampleCopied", OperationServerExpanded = "OperationServerExpanded", PanelToggle = "PanelToggle", TryItOpen = "TryItOpen", TryItSent = "TryItSent", TargetServerSwitched = "TargetServerSwitched" } export interface AnalyticsEvent { eventType: AnalyticsEventType; resource: 'Redocly_CodeSample' | 'Redocly_Operation' | 'Redocly_OperationTryIt'; action: 'LanguageSwitched' | 'PanelToggled' | 'Opened' | 'Closed' | 'NavigatedOverrideLink' | 'Sent' | 'ValidationFailed' | 'CodeSampleCopied' | 'TargetServerSwitched'; operationId?: string; operationPath: string; operationHttpVerb: string; operationSummary?: string; } export interface CodeSamplesLanguageSwitchedEvent extends AnalyticsEvent { lang: string; label: string; exampleId?: string; } export interface CodeSamplesCopiedEvent extends AnalyticsEvent { lang: string; label: string; type: 'request' | 'response'; exampleId?: string; exampleMimeType?: string; } declare type TryItOpenedEvent = AnalyticsEvent; export interface PanelToggleEvent extends AnalyticsEvent { panelType: 'request' | 'responses' | 'request-samples' | 'response-samples'; state: 'expanded' | 'collapsed'; operationId: string; operationPath: string; operationHttpVerb: string; operationSummary?: string; } export interface TargetServerSwitchedEvent extends AnalyticsEvent { serverUrl: string; } export declare type Events = { codeSamplesLanguageSwitch?: (event: CodeSamplesLanguageSwitchedEvent) => void; codeSamplesCopy?: (event: CodeSamplesCopiedEvent) => void; tryItOpen?: (event: TryItOpenedEvent) => void; tryItSent?: (event: TryItOpenedEvent) => void; panelToggle?: (event: PanelToggleEvent) => void; targetServerSwitch?: (event: TargetServerSwitchedEvent) => void; }; export {};