import type { HawkNodeJSInitialSettings } from '../types/index.js'; import type { EventContext, AffectedUser, Breadcrumb } from '@hawk.so/types'; import { type BreadcrumbInput, type BreadcrumbHint } from './modules/breadcrumbs.js'; /** * Wrapper for Hawk NodeJS Catcher */ export default class HawkCatcher { /** * Wrapper for HawkCatcher constructor * @param settings - If settings is a string, it means an Integration Token */ static init(settings: HawkNodeJSInitialSettings | string): void; /** * Wrapper for HawkCatcher.send() method * * This method prepares and sends an Error to Hawk * User can fire it manually on try-catch * @param error - error to catch * @param context — event context * @param user - User identifier */ static send(error: Error, context?: EventContext, user?: AffectedUser): void; /** * Breadcrumbs API (same as in JS catcher: add, get, clear). * No-op when breadcrumbs were disabled (breadcrumbs: false) or Catcher is not initialized. */ static get breadcrumbs(): BreadcrumbsAPI; } /** * Breadcrumbs API - same surface as in @hawk.so/javascript (add, get, clear) */ export interface BreadcrumbsAPI { /** Add a breadcrumb to the buffer (attached to every event until cleared) */ add(breadcrumb: BreadcrumbInput, hint?: BreadcrumbHint): void; /** Get current breadcrumbs snapshot (oldest to newest) */ get(): Breadcrumb[]; /** Clear all breadcrumbs */ clear(): void; } export type { BreadcrumbInput, BreadcrumbHint, BreadcrumbsOptions } from './modules/breadcrumbs.js'; export type { HawkNodeJSInitialSettings } from '../types/index.js';