import { DsnLike } from './dsn' ; import { Event } from './event' ; import { SentryRequestType } from './request' ; import { Response } from './response' ; import { SdkMetadata } from './sdkmetadata' ; import { Session , SessionAggregates } from './session' ; export type Outcome = 'before_send' | 'event_processor' | 'network_error' | 'queue_overflow' | 'ratelimit_backoff' | 'sample_rate' ; /** Transport used sending data to Sentry */ export interface Transport { param event sendEvent ( event ) : PromiseLike < Response > ; param session sendSession ? ( session ) : PromiseLike < Response > ; param timeout returns close ( timeout ? ) : PromiseLike < boolean > ; /**
     * Increment the counter for the specific client outcome
     */ recordLostEvent ? ( type , category ) : void ; } /** JSDoc */ export type TransportClass < T extends Transport > = new ( options ) => T ; /** JSDoc */ export interface TransportOptions { /** Sentry DSN */ dsn : DsnLike ; /** Define custom headers */ headers ? : { [ key ] : string ; } ; /** Set a HTTP proxy that should be used for outbound requests. */ httpProxy ? : string ; /** Set a HTTPS proxy that should be used for outbound requests. */ httpsProxy ? : string ; /** HTTPS proxy certificates path */ caCerts ? : string ; /** Fetch API init parameters */ fetchParameters ? : { [ key ] : string ; } ; /** The envelope tunnel to use. */ tunnel ? : string ; /** Send SDK Client Reports. Enabled by default. */ sendClientReports ? : boolean ; /**
     * Set of metadata about the SDK that can be internally used to enhance envelopes and events,
     * and provide additional data about every request.
     * */ _metadata ? : SdkMetadata ; }