/// <reference types="node" />
import { ContentEncodingType } from './encoding.js';
import { HttpHeaders } from './http.js';
import { DependencyInterface, DeviceType } from './types.js';
export interface Resource {
    method: string;
    url: string;
    ttfbMs: number;
    mbps?: number;
    statusCode?: number;
    errorMessage?: string;
    rawHeaders?: HttpHeaders;
    contentEncoding?: ContentEncodingType;
    contentTypeMime?: string;
    contentTypeCharset?: string;
    contentFilePath?: string;
    contentUtf8?: string;
    contentBase64?: string;
    minify?: boolean;
}
export interface Transaction {
    method: string;
    url: string;
    ttfbMs: number;
    statusCode?: number;
    errorMessage?: string;
    rawHeaders?: HttpHeaders;
    content?: Buffer;
    durationMs?: number;
}
export interface Inventory {
    entryUrl?: string;
    deviceType?: DeviceType;
    resources: Resource[];
}
type InventoryRepositoryDependency = Pick<DependencyInterface, 'logger'>;
export declare class InventoryRepository {
    dirPath: string;
    dependency: InventoryRepositoryDependency;
    constructor(dirPath?: string, dependency?: InventoryRepositoryDependency);
    saveInventory(inventory: Inventory): Promise<void>;
    loadInventory(): Promise<Inventory>;
    saveTransactions(transactions: Transaction[]): Promise<Resource[]>;
    loadTransactions(resources: Resource[]): Promise<Transaction[]>;
}
export {};
