import { Nullable } from '@mlytics/core-ts/core/type/basic'; import { AbortController } from '@mlytics/core-ts/native/abctrl'; import { AbstractFlow } from '@mlytics/core-ts/utility/flow'; import { Payload } from '@mlytics/core-ts/utility/requester'; import { Resource } from '../../model/service/resource'; import { CDN, CDNSource } from './model/mcdn'; declare class MCDNDownloadRecorder extends AbstractFlow { protected _cdn: CDN; process(): Promise; protected _intakeHTTPDownloadRecord(): Promise; protected _forwardHTTPDownloadRecord(): Promise; protected get _shouldUpdateCDNStats(): boolean; protected _intakeCDNStats(): Promise; protected _updateCDNBandwidth(): Promise; protected _updateCDNMeanBandwidth(): Promise; protected _updateCDNMeanAvailability(): Promise; protected _updateCDNCurrentScore(): Promise; protected _forwardCDNDownloadRecord(): Promise; static process(options: MCDNDownloadRecorderOptions): Promise; } type MCDNDownloadRecorderContent = HTTPDownloadRecordBuilderOptions; type MCDNDownloadRecorderOptions = MCDNDownloadRecorderContent; type HTTPDownloadRecordBuilderOptions = { source: CDNSource; resource: Resource; payload?: Nullable; error?: Nullable; aborter: AbortController; requestURI: string; startSize: number; startTime: number; measurement: PerformanceResourceTiming; }; export { MCDNDownloadRecorder };