import type { Runner } from "../index";
import type { ChildProcessWithoutNullStreams } from "child_process";
import type { FSWatcher } from "fs";
export declare class RubyRunner implements Runner {
    invoke: Runner["invoke"];
    mount: Runner["mount"];
    unmount: Runner["unmount"];
    name: string;
    outName: string;
    timeout: number;
    memorySize: number;
    environment: {
        [key: string]: any;
    };
    handlerPath: string;
    modulePath: string;
    handlerDir: string;
    handlerName: string;
    runtime: string;
    bin?: string;
    ruby?: ChildProcessWithoutNullStreams;
    isMounted: boolean;
    emitRebuild: Function;
    watcherListener: (event: "rename" | "change", filename: string | Buffer) => void;
    watchers: FSWatcher[];
    static wrapper: string;
    static DELIMITER: string;
    static ERR_RESPONSE: string;
    static WATCH: string;
    constructor({ name, outName, timeout, memorySize, environment, handlerPath, handlerName, runtime, }: {
        name: string;
        outName: string;
        handlerPath: string;
        handlerName: string;
        runtime: string;
        timeout: number;
        memorySize: number;
        environment: {
            [key: string]: any;
        };
    }, emitRebuild: Function);
    setWatchFiles: (data: string) => Promise<void>;
    load: () => void;
    onComplete: (awsRequestId: string) => void;
}
