import { StateObservable } from "redux-observable";
import { Observable } from "rxjs";
import * as actions from "@nteract/actions";
import { AppState } from "@nteract/types";
/**
 * Maps ExecuteAllCells, ExecuteAllCellsAbove, and ExecuteAllCellsBelow actions to
 * ExecuteCell actions. These ExecuteCell actions are mapped
 * to SendExecuteRequest actions by another epic.
 *
 * @param action$  The stream of actions dispatched to Redux
 * @param state$   The stream of state changes
 */
export declare function executeAllCellsEpic(action$: Observable<actions.ExecuteAllCells | actions.ExecuteAllCellsAbove | actions.ExecuteAllCellsBelow>, state$: StateObservable<AppState>): Observable<{
    type: "EXECUTE_FAILED";
    payload: import("@nteract/actions/lib/utils").MaybeHasContent & {
        id?: string | undefined;
    } & {
        error: Error;
        code?: string | undefined;
    };
    error: true;
} | {
    type: "EXECUTE_CELL";
    payload: import("@nteract/actions/lib/utils").HasCell;
}>;
/**
 * Maps an ExecuteFocusedCell action to an ExecuteCell action
 * by extracting the currently focused cell from the state.
 *
 * @param action$
 * @param state$
 */
export declare function executeFocusedCellEpic(action$: Observable<actions.ExecuteFocusedCell>, state$: StateObservable<AppState>): Observable<{
    type: "EXECUTE_FAILED";
    payload: import("@nteract/actions/lib/utils").MaybeHasContent & {
        id?: string | undefined;
    } & {
        error: Error;
        code?: string | undefined;
    };
    error: true;
} | {
    type: "EXECUTE_CELL";
    payload: import("@nteract/actions/lib/utils").HasCell;
}>;
/**
 * Maps an ExecuteCell action to a SendExecuteRequest or EnqueueAction action.
 *
 * If the kernel is ready to execute, emit the SendExecuteRequest action.
 *
 * F f the kernel is not ready, push the execute request to the message queue
 * by emitting the EnqueueAction action.
 */
export declare function executeCellEpic(action$: Observable<actions.ExecuteCell>, state$: StateObservable<AppState>): Observable<{
    type: "UPDATE_CELL_STATUS";
    payload: import("@nteract/actions/lib/utils").HasCell & {
        status: string;
    };
} | {
    type: "SEND_EXECUTE_REQUEST";
    payload: import("@nteract/actions/lib/utils").HasCell;
} | {
    type: "ENQUEUE_ACTION";
    payload: import("@nteract/actions/lib/utils").HasCell;
}>;
