import type { EventEmitter } from 'node:events';
import { ConfigService } from '../../../core/config/config.service';
import { Logger } from '../../../core/logger/logger.service';
import { NodePtyService } from '../../../core/node-pty/node-pty.service';
export interface TermSize {
    cols: number;
    rows: number;
}
export declare class TerminalService {
    private configService;
    private logger;
    private nodePtyService;
    private ending;
    private static persistentTerminal;
    private static connectedClients;
    private static dataListenerAttached;
    private static terminalBuffer;
    private instanceId;
    constructor(configService: ConfigService, logger: Logger, nodePtyService: NodePtyService);
    private getPreferredShell;
    startSession(client: WsEventEmitter, size: TermSize): Promise<void>;
    private createNewTerminal;
    private attachToPersistentTerminal;
    hasPersistentSession(): boolean;
    destroyPersistentSession(): void;
}
export interface WsEventEmitter extends EventEmitter {
    disconnect: () => void;
}
