import type { Context, RumInternalContext, User } from '@octopus-sdk/browser-core'; import type { RumInitConfiguration } from '../domain/configuration/configuration'; import type { ViewOptions } from '../domain/view/trackViews'; import type { StartRum, StartRumResult } from './startRum'; export interface StartRecordingOptions { force: boolean; } export interface RumPublicApi { init: (initConfiguration: RumInitConfiguration) => void; addAction: (name: string, context?: object) => void; startView: (options: ViewOptions) => void; updateViewName: (name: string) => void; setViewContext: (context: Context) => void; setViewContextProperty: (key: string, value: any) => void; addError: (error: unknown, context?: object) => void; stopSession: () => void; setGlobalContext: (context: any) => void; getGlobalContext: () => Context; setGlobalContextProperty: (key: any, value: any) => void; removeGlobalContextProperty: (key: any) => void; clearGlobalContext: () => void; getInternalContext: (startTime?: number) => RumInternalContext | undefined; setUser: (newUser: User) => void; getUser: () => Context; setUserProperty: (key: any, property: any) => void; removeUserProperty: (key: any) => void; clearUser: () => void; } export interface Strategy { init: (initConfiguration: RumInitConfiguration, publicApi: RumPublicApi) => void; initConfiguration: RumInitConfiguration | undefined; getInternalContext: StartRumResult['getInternalContext']; stopSession: StartRumResult['stopSession']; addAction: StartRumResult['addAction']; addError: StartRumResult['addError']; addTiming: StartRumResult['addTiming']; startView: StartRumResult['startView']; updateViewName: StartRumResult['updateViewName']; setViewContext: StartRumResult['setViewContext']; setViewContextProperty: StartRumResult['setViewContextProperty']; } export declare function makeRumPublicApi(startRumImpl: StartRum): RumPublicApi;