export interface Abortable { abort(signal?: string): void; } export interface Resizable { resize(rows: number, cols: number): void; } export declare function isResizable(job: Partial): job is Resizable; export interface FlowControllable { xon(): void; xoff(): void; write(data: string): void; } export type Suspendable = Omit; /** in the future, a WatchableJob may be more than Abortable, e.g. Suspendable */ export type WatchableJob = Abortable & Partial; export declare function isSuspendable(watch: Partial): () => void; export type Job = Abortable & FlowControllable & Partial;