import { IO_Observable_Reader_Interface, IO_Observable_Writer_Interface } from "../io/types";
import { Task_Interface } from "../tasks";
import { Observer_Interface, Observer_Props, Observer_Type } from "./observer";
export interface Runner_Interface<D> extends Observer_Interface<D> {
    addTask(task: Task_Interface<D>): void;
    addReader(reader: IO_Observable_Reader_Interface<D>): void;
    addWriter(writer: IO_Observable_Writer_Interface<D>): void;
    run(): void;
    do_command(props: Observer_Props<D>): void;
    get_observer_id(): Observer_Type;
}
export declare class Runner<D> implements Runner_Interface<D> {
    private tasks;
    private reader;
    private writer;
    addTask(task: Task_Interface<D>): void;
    addReader(reader: IO_Observable_Reader_Interface<D>): void;
    addWriter(writer: IO_Observable_Writer_Interface<D>): void;
    do_command(props: Observer_Props<D>): void;
    run(): void;
    get_observer_id(): Observer_Type;
}
