/**
 * Copyright Microsoft Corporation. All rights reserved.
 *
 * 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 { BrowserType, Browser } from 'playwright-core';
import type { CommonFixtures } from './commonFixtures';
export interface PlaywrightServer {
    wsEndpoint(): string;
    close(): Promise<void>;
}
export declare class RunServer implements PlaywrightServer {
    private _process;
    _wsEndpoint: string;
    start(childProcess: CommonFixtures['childProcess'], options?: {
        mode?: 'extension' | 'default';
        env?: NodeJS.ProcessEnv;
        artifactsDir?: string;
    }): Promise<void>;
    wsEndpoint(): string;
    close(): Promise<void>;
}
export type RemoteServerOptions = {
    stallOnClose?: boolean;
    disconnectOnSIGHUP?: boolean;
    exitOnFile?: string;
    exitOnWarning?: boolean;
    inCluster?: boolean;
    url?: string;
    startStopAndRunHttp?: boolean;
    sharedBrowser?: boolean;
    artifactsDir?: string;
    allowClientNetwork?: string;
};
export declare class RemoteServer implements PlaywrightServer {
    private _process;
    readonly _output: Map<string, string>;
    readonly _outputCallback: Map<string, () => void>;
    _browserType: BrowserType;
    _exitAndDisconnectPromise: Promise<any> | undefined;
    _browser: Browser | undefined;
    _wsEndpoint: string;
    _start(childProcess: CommonFixtures['childProcess'], browserType: BrowserType, channel: string, remoteServerOptions?: RemoteServerOptions): Promise<void>;
    _addOutput(key: string, value: string): void;
    out(key: string): Promise<string>;
    wsEndpoint(): string;
    child(): import("child_process").ChildProcess;
    childExitCode(): Promise<number | null>;
    childSignal(): Promise<string | null>;
    close(): Promise<void>;
}
//# sourceMappingURL=remoteServer.d.ts.map