import { Cell } from '@jupyterlab/cells';
/**
 * Interface describing a heading.
 */
export interface IHeading {
    /**
     * Heading text.
     */
    text: string;
    /**
     * HTML heading level.
     */
    level: number;
    /**
     * Callback invoked upon clicking a ToC item.
     *
     * ## Notes
     *
     * -   This will typically be used to scroll the parent widget to this item.
     */
    onClick: () => void;
    /**
     * Special HTML markup.
     *
     * ## Notes
     *
     * -   The HTML string **should** be properly **sanitized**!
     * -   The HTML string can be used to render Markdown headings which have already been rendered as HTML.
     */
    html?: string;
}
/**
 * Interface describing a numbered heading.
 */
export interface INumberedHeading extends IHeading {
    /**
     * Heading numbering.
     */
    numbering?: string | null;
}
/**
 * Cell running status
 */
export declare enum RunningStatus {
    /**
     * Cell is idle
     */
    Idle = -1,
    /**
     * Cell execution is scheduled
     */
    Scheduled = 0,
    /**
     * Cell is running
     */
    Running = 1
}
/**
 * Interface describing a notebook cell heading.
 */
export interface INotebookHeading extends INumberedHeading {
    /**
     * Heading type.
     */
    type: 'header' | 'markdown' | 'code';
    /**
     * Reference to a notebook cell.
     */
    cellRef: Cell;
    /**
     * Heading prompt.
     */
    prompt?: string;
    /**
     * Boolean indicating whether a heading has a child node.
     */
    hasChild?: boolean;
    /**
     * index of reference cell in the notebook
     */
    index: number;
    /**
     * Running status of the cells in the heading
     */
    isRunning: RunningStatus;
}
/**
 * Tests whether a heading is a notebook heading.
 *
 * @param heading - heading to test
 * @returns boolean indicating whether a heading is a notebook heading
 */
export declare function isNotebookHeading(heading: any): boolean;
