/**
 * 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 { SendCommand, SendToCDPClient } from './cdpRelayHandler';
import type { DebuggerSession, Debuggee, Tab } from './protocol';
export declare class BrowserModel {
    private _sendToExtension;
    private _sendToCDPClient;
    private _knownTabs;
    private _tabSessions;
    private _autoAttach;
    private _nextSessionId;
    constructor(sendToExtension: SendCommand);
    connectOverCDP(sendToCDPClient: SendToCDPClient): void;
    private _emit;
    onTabCreated(tab: Tab): void;
    onTabRemoved(tabId: number): void;
    onDebuggerEvent(source: DebuggerSession, method: string, params: any): void;
    onDebuggerDetach(source: Debuggee): void;
    enableAutoAttach(): Promise<void>;
    createTarget(url: string | undefined): Promise<{
        targetId: string | undefined;
    }>;
    closeTarget(targetId: string | undefined): Promise<{
        success: boolean;
    }>;
    getTargetInfo(sessionId: string | undefined): any;
    sendCommand(sessionId: string, method: string, params: any): Promise<any>;
    private _attachTab;
    private _detachTab;
    private _findTabSession;
}
//# sourceMappingURL=browserModel.d.ts.map