///
import IResourceMeta from '@ulixee/unblocked-specification/agent/net/IResourceMeta';
import { Database as SqliteDatabase } from 'better-sqlite3';
import IResourceType from '@ulixee/unblocked-specification/agent/net/IResourceType';
import SqliteTable from '@ulixee/commons/lib/SqliteTable';
import IResourceSummary from '@ulixee/hero-interfaces/IResourceSummary';
import IResourceProcessingDetails from '@ulixee/unblocked-agent/interfaces/IResourceProcessingDetails';
export default class ResourcesTable extends SqliteTable {
constructor(db: SqliteDatabase);
updateReceivedTime(id: number, timestamp: number): void;
updateSeenAtCommandId(id: number, seenAtCommandId: number): void;
updateBrowserRequestId(id: number, data: {
tabId: number;
browserRequestId: string;
}): void;
get(id: number): IResourcesRecord;
getMeta(id: number, includeBody: boolean): Promise;
save(record: IResourcesRecord): void;
mergeWithExisting(resourceId: number, existingResource: IResourceMeta, newResourceDetails: IResourceMeta, resourceFailedEvent: IResourceProcessingDetails, error?: Error): void;
insert(tabId: number, meta: IResourceMeta, postData: Buffer, body: Buffer, extras: IResourceProcessingDetails, error?: Error): void;
withResponseTimeInRange(tabId: number, startTime: number, endTime: number): IResourceSummary[];
filter(filters: {
hasResponse?: boolean;
isGetOrDocument?: boolean;
}): IResourceSummary[];
getResponse(resourceId: number): Pick;
getResourcePostDataById(resourceId: number): Buffer | null;
getResourceBodyById(resourceId: number, decompress?: boolean): Promise;
static toResourceSummary(record: IResourcesRecord): IResourceSummary;
static getErrorString(error: Error | string): string;
}
export interface IResourcesRecord {
id: number;
devtoolsRequestId: string;
tabId: number;
frameId: number;
socketId: number;
protocol: string;
type: IResourceType;
receivedAtCommandId: number;
seenAtCommandId: number;
requestMethod: string;
requestUrl: string;
requestHeaders: string;
requestTrailers?: string;
requestTimestamp: number;
requestPostData?: string;
redirectedToUrl?: string;
statusCode: number;
statusMessage: string;
responseUrl: string;
responseHeaders: string;
responseTrailers?: string;
responseTimestamp: number;
responseEncoding: string;
responseData?: Buffer;
responseDataBytes?: number;
dnsResolvedIp?: string;
usedArtificialCache: boolean;
responseIntercepted: boolean;
isHttp2Push: boolean;
requestOriginalHeaders: string;
responseOriginalHeaders: string;
httpError: string;
browserLoadedTimestamp?: number;
browserServedFromCache?: 'service-worker' | 'disk' | 'prefetch' | 'memory';
browserLoadFailure?: string;
browserBlockedReason?: string;
browserCanceled?: boolean;
documentUrl: string;
}