import { ExceptionInterface, FrameInterface, ThreadEntrySchema } from "../schema-BogGdbdV.js";
import { Event } from "../types-DoT0an28.js";
import { z } from "zod";

//#region src/internal/test-fixtures.d.ts
type Frame = z.infer<typeof FrameInterface>;
type ExceptionValue = z.infer<typeof ExceptionInterface>;
type Thread = z.infer<typeof ThreadEntrySchema>;
type StackTrace = {
  frames: Frame[];
};
/**
 * Test fixture factories for creating Event objects with minimal boilerplate.
 * These factories provide sensible defaults while allowing customization.
 */
declare function createFrame(overrides?: Partial<Frame>): Frame;
declare const frameFactories: {
  python: (overrides?: Partial<Frame>) => {
    function?: string | null | undefined;
    filename?: string | null | undefined;
    lineNo?: number | null | undefined;
    colNo?: number | null | undefined;
    absPath?: string | null | undefined;
    module?: string | null | undefined;
    context?: [number, string][] | undefined;
    inApp?: boolean | undefined;
    vars?: Record<string, unknown> | undefined;
  };
  java: (overrides?: Partial<Frame>) => {
    function?: string | null | undefined;
    filename?: string | null | undefined;
    lineNo?: number | null | undefined;
    colNo?: number | null | undefined;
    absPath?: string | null | undefined;
    module?: string | null | undefined;
    context?: [number, string][] | undefined;
    inApp?: boolean | undefined;
    vars?: Record<string, unknown> | undefined;
  };
  javascript: (overrides?: Partial<Frame>) => {
    function?: string | null | undefined;
    filename?: string | null | undefined;
    lineNo?: number | null | undefined;
    colNo?: number | null | undefined;
    absPath?: string | null | undefined;
    module?: string | null | undefined;
    context?: [number, string][] | undefined;
    inApp?: boolean | undefined;
    vars?: Record<string, unknown> | undefined;
  };
  ruby: (overrides?: Partial<Frame>) => {
    function?: string | null | undefined;
    filename?: string | null | undefined;
    lineNo?: number | null | undefined;
    colNo?: number | null | undefined;
    absPath?: string | null | undefined;
    module?: string | null | undefined;
    context?: [number, string][] | undefined;
    inApp?: boolean | undefined;
    vars?: Record<string, unknown> | undefined;
  };
  php: (overrides?: Partial<Frame>) => {
    function?: string | null | undefined;
    filename?: string | null | undefined;
    lineNo?: number | null | undefined;
    colNo?: number | null | undefined;
    absPath?: string | null | undefined;
    module?: string | null | undefined;
    context?: [number, string][] | undefined;
    inApp?: boolean | undefined;
    vars?: Record<string, unknown> | undefined;
  };
};
declare function createStackTrace(frames: Frame[]): StackTrace;
declare function createExceptionValue(overrides?: Partial<ExceptionValue>): ExceptionValue;
declare function createThread(overrides?: Partial<Thread>): Thread;
declare class EventBuilder {
  private event;
  constructor(platform?: string);
  withId(id: string): this;
  withPlatform(platform: string): this;
  withException(exception: ExceptionValue): this;
  withChainedExceptions(exceptions: ExceptionValue[]): this;
  withThread(thread: Thread): this;
  withMessage(message: string): this;
  withTitle(title: string): this;
  withType(type: "error" | "transaction"): this;
  withContexts(contexts: Record<string, any>): this;
  withOccurrence(occurrence: {
    id?: string;
    projectId?: number;
    eventId?: string;
    fingerprint?: string[];
    issueTitle: string;
    subtitle?: string;
    resourceId?: string | null;
    evidenceData?: Record<string, any>;
    evidenceDisplay?: Array<{
      name: string;
      value: string;
      important?: boolean;
    }>;
    type?: number;
    detectionTime?: number;
    level?: string;
    culprit?: string | null;
    priority?: number;
    assignee?: string | null;
    [key: string]: unknown;
  }): this;
  withEntry(entry: {
    type: string;
    data: any;
  }): this;
  build(): Event;
}
declare const testEvents: {
  pythonException: (errorMessage?: string) => Event;
  javaThreadError: (message?: string) => Event;
  enhancedFrame: (platform?: string) => Event;
};
declare function createFrameWithContext(frame: Partial<Frame>, contextLines: Array<[number, string]>, vars?: Record<string, any>): Frame;
declare const advancedFixtures: {
  minimalError: (message: string, platform?: string) => Event;
  chainedExceptions: (platform?: string) => Event;
  withContextData: (contexts: Record<string, any>) => Event;
};
//#endregion
export { EventBuilder, advancedFixtures, createExceptionValue, createFrame, createFrameWithContext, createStackTrace, createThread, frameFactories, testEvents };
//# sourceMappingURL=test-fixtures.d.ts.map