import type { PermissionMode } from './acp-permissions.js';
interface CreateTerminalRequest {
    sessionId: string;
    command: string;
    args?: string[];
    env?: Array<{
        name: string;
        value: string;
    }>;
    cwd?: string;
    outputByteLimit?: number;
}
interface TerminalOutputRequest {
    sessionId: string;
    terminalId: string;
}
interface WaitForTerminalExitRequest {
    sessionId: string;
    terminalId: string;
}
interface KillTerminalRequest {
    sessionId: string;
    terminalId: string;
}
interface ReleaseTerminalRequest {
    sessionId: string;
    terminalId: string;
}
interface ExitStatus {
    exitCode: number | null;
    signal: string | null;
}
export declare class TerminalManager {
    private readonly cwd;
    private readonly permissionMode;
    private readonly terminals;
    constructor(opts: {
        cwd: string;
        permissionMode: PermissionMode;
    });
    createTerminal(params: CreateTerminalRequest): Promise<{
        terminalId: string;
    }>;
    terminalOutput(params: TerminalOutputRequest): Promise<{
        output: string;
        truncated: boolean;
        exitStatus?: ExitStatus;
    }>;
    waitForTerminalExit(params: WaitForTerminalExitRequest): Promise<ExitStatus>;
    killTerminal(params: KillTerminalRequest): Promise<Record<string, never>>;
    releaseTerminal(params: ReleaseTerminalRequest): Promise<Record<string, never>>;
    private killProcess;
    private getTerminal;
}
export {};
//# sourceMappingURL=acp-terminal-manager.d.ts.map