/// <reference types="node" />
/// <reference types="node" />
import { Socket } from "node:net";
export type Type = "json" | "blob";
export interface Message {
    id?: string;
    uuid?: string;
    blob?: Buffer | string;
    ttlSeconds?: number;
    event?: "sage_raw_input" | "hello";
    value?: any;
    done?: boolean;
}
interface RecvMesgOpts {
    type: Type;
    id: string;
    cb: (message: object) => void;
    timeout?: number;
}
export interface CoCalcSocket extends Socket {
    id: string;
    pid?: number;
    heartbeat?: Date;
    write_mesg: (type: Type, mesg: Message, cb?: (err?: string | Error) => void) => void;
    recv_mesg: (opts: RecvMesgOpts) => void;
}
export default function enable(socket: CoCalcSocket, desc?: string): void;
export {};
