import { BacktraceNodeClientSetup, BacktraceSetupConfiguration, BacktraceClient as NodeBacktraceClient } from '@backtrace/node'; import { BrowserWindow } from 'electron'; import { WindowAttributeProviderOptions } from './attributes/WindowAttributeProvider.js'; import { BacktraceClientBuilder } from './builder/BacktraceClientBuilder.js'; export declare class BacktraceClient extends NodeBacktraceClient { constructor(clientSetup: BacktraceNodeClientSetup); static builder(options: BacktraceSetupConfiguration): BacktraceClientBuilder; /** * Returns created BacktraceClient instance if the instance exists. * Otherwise undefined. */ static get instance(): BacktraceClient | undefined; /** * Initializes the client. If the client already exists, the available instance * will be returned and all other options will be ignored. * @param options client configuration * @param build builder * @returns backtrace client */ static initialize(options: BacktraceSetupConfiguration, build?: (builder: BacktraceClientBuilder) => void): BacktraceClient; /** * Adds window information to reports as flattened attributes. * @param window Window to add attributes from. * @param options Options for the attribute provider. * * @example * // Will add attributes for window under `electron.window.${myWindow.id}` * client.addWindowAttributes(myWindow); * * // Will add attributes for window under `electron.window.myWindow` * client.addWindowAttributes(myWindow, { key: 'myWindow' }) */ addWindow(window: BrowserWindow, options?: WindowAttributeProviderOptions): this; /** * Adds main window information to reports. You should add only one window using this function. * * Same as `addWindow(window, { key: 'main' })`. * @param window Window to add attributes from. * @param options Options for the attribute provider. */ addMainWindow(window: BrowserWindow, options?: WindowAttributeProviderOptions): this; }