/** * `BrowsonicService` — Injectable wrapper around `@browsonic/sdk` * for use anywhere in an Angular component / service / directive. * Keeps the SDK call-site idiomatic Angular: `inject(BrowsonicService)` * + `service.captureError(...)`. * * The service is a plain TypeScript class with no Angular runtime * decorators — Angular's `Injectable` shape is duck-typed at the * provider boundary, so wrapping the class in `{ provide: ..., useClass: ... }` * (or via {@link provideBrowsonic}) makes it injectable. This keeps * `@angular/core` out of the package's runtime graph; the host app * already has it. * * @copyright 2024-2026 Browsonic * @license Apache-2.0 */ import type { Breadcrumb, Browsonic, UserContext } from '@browsonic/sdk'; export interface BrowsonicServiceOptions { /** Explicit SDK instance. Falls back to window singleton lookup. */ sdk?: Browsonic; } export declare class BrowsonicService { private readonly explicitSdk?; constructor(options?: BrowsonicServiceOptions); /** Resolve the active SDK, or `null` when unreachable. */ getSdk(): Browsonic | null; setUser(user: UserContext): void; clearUser(): void; captureError(error: Error): void; captureMessage(message: string, level?: 'info' | 'warn' | 'error' | 'fatal'): void; addBreadcrumb(breadcrumb: Breadcrumb): void; setTag(key: string, value: string | number | boolean): void; } //# sourceMappingURL=service.d.ts.map