/**
 * Escape HTML special characters
 */
export declare function escapeHtml(str: string): string;
/**
 * Read source lines around a stack frame for the code snippet panel.
 */
export declare function readCodeSnippet(filePath: string, line: number, radius?: number): CodeSnippetResult | null;
export declare function renderCodeSnippet(snippet: CodeSnippetResult): string;
export declare function renderTraceFrame(frame: ParsedFrame, index: number, snippetLines: number): string;
export declare function renderVendorGroup(frames: ParsedFrame[], snippetLines: number): string;
export declare function groupTraceFrames(frames: ParsedFrame[]): Array<ParsedFrame | ParsedFrame[]>;
export declare function renderExceptionTrace(frames: ParsedFrame[], snippetLines: number): string;
export declare function renderContextTabs(opts: {
  request?: RequestContext
  routing?: RoutingContext
  user?: UserContext
  queries?: QueryInfo[]
  showEnvironment?: boolean
}): string;
export declare function buildErrorMarkdown(opts: {
  statusTitle: string
  errorName: string
  errorMessage: string
  status: number
  file?: string
  line?: number
  request?: RequestContext
  framework?: { name: string, version?: string }
  frames: ParsedFrame[]
}): string;
export declare function wrapErrorPage(body: string, markdown: string): string;
export declare const ERROR_PAGE_SCRIPT: string;
export declare interface ParsedFrame {
  file: string
  line: number
  column?: number
  function?: string
  absoluteFile: string
  isFramework: boolean
}
declare interface QueryInfo {
  query: string
  time?: number
  connection?: string
}
declare interface RequestContext {
  method: string
  url: string
  headers: Record<string, string>
  queryParams?: Record<string, string>
  body?: unknown
}
declare interface RoutingContext {
  controller?: string
  routeName?: string
  middleware?: string[]
}
declare interface UserContext {
  id?: string | number
  email?: string
  name?: string
}
export declare interface CodeSnippetResult {
  lines: Array<{ number: number, content: string, highlight: boolean }>
}
