import type { ErrorSource, RawErrorCause, TimeStamp, ErrorHandling } from '@datadog/browser-core';
import type { StatusType } from './domain/logger/isAuthorized';
export type RawLogsEvent = RawConsoleLogsEvent | RawNetworkLogsEvent | RawLoggerLogsEvent | RawAgentLogsEvent | RawReportLogsEvent | RawRuntimeLogsEvent;
interface Error {
    message?: string;
    kind?: string;
    stack?: string;
    fingerprint?: string;
    causes?: RawErrorCause[];
    handling: ErrorHandling | undefined;
}
interface CommonRawLogsEvent {
    date: TimeStamp;
    message: string;
    status: StatusType;
    error?: Error;
    origin: ErrorSource;
}
export interface RawConsoleLogsEvent extends CommonRawLogsEvent {
    origin: typeof ErrorSource.CONSOLE;
}
export interface RawLoggerLogsEvent extends CommonRawLogsEvent {
    origin: typeof ErrorSource.LOGGER;
}
export interface RawNetworkLogsEvent extends CommonRawLogsEvent {
    origin: typeof ErrorSource.NETWORK;
    status: typeof StatusType.error;
    error: Error;
    http: {
        method: 'POST' | 'GET' | 'HEAD' | 'PUT' | 'DELETE' | 'PATCH';
        status_code: number;
        url: string;
        [k: string]: unknown;
    };
}
export interface RawReportLogsEvent extends CommonRawLogsEvent {
    origin: typeof ErrorSource.REPORT;
}
export interface RawRuntimeLogsEvent extends CommonRawLogsEvent {
    origin: typeof ErrorSource.SOURCE;
    status: typeof StatusType.error;
    error: Error;
}
export interface RawAgentLogsEvent extends CommonRawLogsEvent {
    origin: typeof ErrorSource.AGENT;
    status: typeof StatusType.error;
}
export interface CommonContext {
    view?: {
        referrer: string;
        url: string;
    };
}
export {};
