/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 *
 * Note (@gzuidhof): Despite the warning above, I added the Cell typedef below..
 */
export declare type Output = Pyout | DisplayData | Stream | Pyerr;
export declare type Cell = RawCell | MarkdownCell | HeadingCell | CodeCell;
/**
 * IPython Notebook v3.0 JSON schema.
 */
export interface Demo {
    /**
     * Notebook root-level metadata.
     */
    metadata: {
        /**
         * Kernel information.
         */
        kernel_info?: {
            /**
             * Name of the kernel specification.
             */
            name: string;
            /**
             * The programming language which this kernel runs.
             */
            language: string;
            /**
             * The codemirror mode to use for code in this language.
             */
            codemirror_mode?: string;
            [k: string]: unknown;
        };
        /**
         * Hash of the notebook.
         */
        signature?: string;
        [k: string]: unknown;
    };
    /**
     * Notebook format (minor number). Incremented for backward compatible changes to the notebook format.
     */
    nbformat_minor: number;
    /**
     * Notebook format (major number). Incremented between backwards incompatible changes to the notebook format.
     */
    nbformat: 3;
    /**
     * Original notebook format (major number) before converting the notebook between versions.
     */
    orig_nbformat?: number;
    /**
     * Original notebook format (minor number) before converting the notebook between versions.
     */
    orig_nbformat_minor?: number;
    /**
     * Array of worksheets
     */
    worksheets: Worksheet[];
}
export interface Worksheet {
    /**
     * Array of cells of the current notebook.
     */
    cells: (RawCell | MarkdownCell | HeadingCell | CodeCell)[];
    /**
     * metadata of the current worksheet
     */
    metadata?: {
        [k: string]: unknown;
    };
}
/**
 * Notebook raw nbconvert cell.
 */
export interface RawCell {
    /**
     * String identifying the type of cell.
     */
    cell_type: "raw";
    /**
     * Cell-level metadata.
     */
    metadata?: {
        /**
         * Raw cell metadata format for nbconvert.
         */
        format?: string;
        /**
         * The cell's name. If present, must be a non-empty string.
         */
        name?: string;
        /**
         * The cell's tags. Tags must be unique, and must not contain commas.
         */
        tags?: string[];
        [k: string]: unknown;
    };
    /**
     * Contents of the cell, represented as an array of lines.
     */
    source: string | string[];
}
/**
 * Notebook markdown cell.
 */
export interface MarkdownCell {
    /**
     * String identifying the type of cell.
     */
    cell_type: "markdown" | "html";
    /**
     * Cell-level metadata.
     */
    metadata?: {
        /**
         * The cell's name. If present, must be a non-empty string.
         */
        name?: string;
        /**
         * The cell's tags. Tags must be unique, and must not contain commas.
         */
        tags?: string[];
        [k: string]: unknown;
    };
    /**
     * Contents of the cell, represented as an array of lines.
     */
    source: string | string[];
}
/**
 * Notebook heading cell.
 */
export interface HeadingCell {
    /**
     * String identifying the type of cell.
     */
    cell_type: "heading";
    /**
     * Cell-level metadata.
     */
    metadata?: {
        [k: string]: unknown;
    };
    /**
     * Contents of the cell, represented as an array of lines.
     */
    source: string | string[];
    /**
     * Level of heading cells.
     */
    level: number;
}
/**
 * Notebook code cell.
 */
export interface CodeCell {
    /**
     * String identifying the type of cell.
     */
    cell_type: "code";
    /**
     * The cell's language (always Python)
     */
    language: string;
    /**
     * Whether the cell is collapsed/expanded.
     */
    collapsed?: boolean;
    /**
     * Cell-level metadata.
     */
    metadata?: {
        [k: string]: unknown;
    };
    /**
     * Contents of the cell, represented as an array of lines.
     */
    input: string | string[];
    /**
     * Execution, display, or stream outputs.
     */
    outputs: Output[];
    /**
     * The code cell's prompt number. Will be null if the cell has not been run.
     */
    prompt_number?: number | null;
}
/**
 * Result of executing a code cell.
 */
export interface Pyout {
    /**
     * Type of cell output.
     */
    output_type: "pyout";
    /**
     * A result's prompt number.
     */
    prompt_number: number;
    text?: string | string[];
    latex?: string | string[];
    png?: string | string[];
    jpeg?: string | string[];
    svg?: string | string[];
    html?: string | string[];
    javascript?: string | string[];
    json?: string | string[];
    pdf?: string | string[];
    /**
     * Cell output metadata.
     */
    metadata?: {
        [k: string]: unknown;
    };
    /**
     * mimetype output (e.g. text/plain), represented as either an array of strings or a string.
     *
     * This interface was referenced by `Pyout`'s JSON-Schema definition
     * via the `patternProperty` "^[a-zA-Z0-9]+/[a-zA-Z0-9\-\+\.]+$".
     */
    [k: string]: string | string[] | undefined;
}
/**
 * Data displayed as a result of code cell execution.
 */
export interface DisplayData {
    /**
     * Type of cell output.
     */
    output_type: "display_data";
    text?: string | string[];
    latex?: string | string[];
    png?: string | string[];
    jpeg?: string | string[];
    svg?: string | string[];
    html?: string | string[];
    javascript?: string | string[];
    json?: string | string[];
    pdf?: string | string[];
    /**
     * Cell output metadata.
     */
    metadata?: {
        [k: string]: unknown;
    };
    /**
     * mimetype output (e.g. text/plain), represented as either an array of strings or a string.
     *
     * This interface was referenced by `DisplayData`'s JSON-Schema definition
     * via the `patternProperty` "[a-zA-Z0-9]+/[a-zA-Z0-9\-\+\.]+$".
     */
    [k: string]: string | string[] | undefined;
}
/**
 * Stream output from a code cell.
 */
export interface Stream {
    /**
     * Type of cell output.
     */
    output_type: "stream";
    /**
     * The stream type/destination.
     */
    stream: string;
    /**
     * The stream's text output, represented as an array of strings.
     */
    text: string | string[];
}
/**
 * Output of an error that occurred during code cell execution.
 */
export interface Pyerr {
    /**
     * Type of cell output.
     */
    output_type: "pyerr";
    /**
     * The name of the error.
     */
    ename: string;
    /**
     * The value, or message, of the error.
     */
    evalue: string;
    /**
     * The error's traceback, represented as an array of strings.
     */
    traceback: string[];
}
