import Session from '@theintern/leadfoot/Session';
import Task from '@dojo/core/async/Task';
import Node from './executors/Node';
/**
 * A ProxiedSession object represents a WebDriver session that interacts with the Intern instrumenting server. It
 * collects code instrumentation data from pages and converts local filesystem paths into URLs for use with
 * {@link module:leadfoot/Session#get}.
 */
export default class ProxiedSession extends Session {
    /**
     * Indicate whether coverage data should be requested before performing a request.
     */
    coverageEnabled: boolean;
    /**
     * The name of the global variable used to store coverage data.
     */
    coverageVariable: string;
    /**
     * The Executor hosting this session.
     */
    executor: Node;
    /**
     * The number of characters that need to be truncated from the front of file paths to get a working path-part
     * for a URL.
     */
    serverBasePathLength: number;
    /**
     * The base URL of the server server in use.
     */
    serverUrl: string;
    private _heartbeatIntervalHandle;
    /**
     * Navigates the browser to a new URL like {@link module:leadfoot/Session#get}, but retrieves any code coverage
     * data recorded by the browser prior to navigation.
     */
    get(url: string): Task<void>;
    /**
     * Quits the browser like {@link module:leadfoot/Session#quit}, but retrieves any code coverage data recorded
     * by the browser prior to quitting.
     */
    quit(): Task<void>;
    /**
     * Sets up a timer to send no-op commands to the remote server on an interval to prevent long-running unit tests
     * from causing the session to time out.
     *
     * @param delay Amount of time to wait between heartbeats. Setting the delay to 0 will disable heartbeats.
     */
    setHeartbeatInterval(delay: number): Task<void>;
    protected _getCoverage(): Task<void>;
}
