/**
 * Generated by tsnapi — public API snapshot of `@devframes/plugin-terminals/types`
 */
// #region Interfaces
export interface SpawnRequest {
  presetId?: string;
  command?: string;
  args?: string[];
  cwd?: string;
  mode?: TerminalMode;
  title?: string;
  cols?: number;
  rows?: number;
  env?: Record<string, string>;
}
export interface TerminalPreset {
  id: string;
  title: string;
  command: string;
  args?: string[];
  cwd?: string;
  mode?: TerminalMode;
  env?: Record<string, string>;
  icon?: string;
}
export interface TerminalSessionInfo {
  id: string;
  title: string;
  processName?: string;
  customTitle?: string;
  termTitle?: string;
  termCwd?: string;
  mode: TerminalMode;
  status: TerminalStatus;
  backend: TerminalBackend;
  command: string;
  args: string[];
  cwd: string;
  cols: number;
  rows: number;
  pid?: number;
  exitCode?: number;
  icon?: string;
  channel?: string;
  restartable?: boolean;
  presetId?: string;
  createdAt: number;
}
export interface TerminalsOptions {
  shell?: string;
  shellArgs?: string[];
  cwd?: string;
  env?: Record<string, string>;
  presets?: TerminalPreset[];
  allowArbitraryCommands?: boolean;
  defaultMode?: TerminalMode;
  scrollback?: number;
  basePath?: string;
  distDir?: string;
  command?: string;
  port?: number;
  auth?: boolean;
}
export interface TerminalsSharedState {
  sessions: TerminalSessionInfo[];
}
// #endregion

// #region Types
export type TerminalBackend = 'pty' | 'pipe';
export type TerminalMode = 'interactive' | 'readonly';
export type TerminalStatus = 'running' | 'exited' | 'error';
// #endregion