/**
 * Copyright (c) Microsoft Corporation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import type { FrameSnapshot, RenderedFrameSnapshot, ResourceSnapshot } from '@trace/snapshot';
import type { PageEntry } from './entries';
import type { LRUCache } from '../lruCache';
export declare class SnapshotRenderer {
    private _htmlCache;
    private _snapshots;
    private _index;
    readonly snapshotName: string | undefined;
    private _resources;
    private _snapshot;
    private _callId;
    private _screencastFrames;
    constructor(htmlCache: LRUCache<SnapshotRenderer, string>, resources: ResourceSnapshot[], snapshots: FrameSnapshot[], screencastFrames: PageEntry['screencastFrames'], index: number);
    snapshot(): FrameSnapshot;
    viewport(): {
        width: number;
        height: number;
    };
    closestScreenshot(): string | undefined;
    render(): RenderedFrameSnapshot;
    resourceByUrl(url: string, method: string): ResourceSnapshot | undefined;
}
type ViewportSize = {
    width: number;
    height: number;
};
type BoundingRect = {
    left: number;
    top: number;
    right: number;
    bottom: number;
};
type FrameBoundingRectsInfo = {
    viewport: ViewportSize;
    frames: WeakMap<Element, {
        boundingRect: BoundingRect;
        scrollLeft: number;
        scrollTop: number;
    }>;
};
declare global {
    interface Window {
        __playwright_frame_bounding_rects__: FrameBoundingRectsInfo;
    }
}
export declare function rewriteURLForCustomProtocol(href: string): string;
export declare const blankSnapshotUrl: string;
export {};
//# sourceMappingURL=snapshotRenderer.d.ts.map