/**
 * 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 { SessionConfig, ClientInfo, SessionFile } from './registry';
import type { MinimistArgs } from './minimist';
export declare class Session {
    readonly name: string;
    readonly config: SessionConfig;
    private _sessionFile;
    constructor(sessionFile: SessionFile);
    isCompatible(clientInfo: ClientInfo): boolean;
    run(clientInfo: ClientInfo, args: MinimistArgs, options?: {
        raw?: boolean;
        json?: boolean;
    }): Promise<{
        text: string;
    }>;
    stop(): Promise<{
        wasOpen: boolean;
    }>;
    deleteData(): Promise<{
        existed: boolean;
        deletedUserDataDir: boolean;
    }>;
    private _connect;
    canConnect(): Promise<boolean>;
    static startDaemon(clientInfo: ClientInfo, cliArgs: MinimistArgs, mode: 'open' | 'attach'): Promise<{
        pid: number | undefined;
        sessionName: string;
        endpoint: string | undefined;
    }>;
    private _stopDaemon;
    deleteSessionConfig(): Promise<void>;
}
//# sourceMappingURL=session.d.ts.map