/**
 * Editable notebook projection, mirrored from oh-my-pi's
 * `packages/coding-agent/src/edit/notebook.ts` at 15b5c1397fc.
 *
 * A notebook is projected to an editable text form using cell markers:
 *
 *   # %% [code|markdown|raw] cell:<index>
 *
 * Source lines that themselves look like a cell marker are escaped by adding
 * one extra `%`. Edits applied to the projected text are mapped back to the
 * underlying notebook JSON, preserving cell metadata/outputs/execution counts.
 */
export type NotebookCellType = "code" | "markdown" | "raw";
export interface NotebookCell {
    cell_type: NotebookCellType;
    source?: string | string[];
    metadata?: Record<string, unknown>;
    execution_count?: number | null;
    outputs?: unknown[];
    [key: string]: unknown;
}
export interface NotebookDocument {
    cells: NotebookCell[];
    metadata: Record<string, unknown>;
    nbformat: number;
    nbformat_minor: number;
    [key: string]: unknown;
}
export declare function isNotebookPath(absolutePath: string): boolean;
export declare function cellSourceToString(source: NotebookCell["source"]): string;
export declare function splitNotebookSource(content: string): string[];
export declare function emptyNotebook(): NotebookDocument;
export declare function newNotebookCell(cellType: NotebookCellType, source: string): NotebookCell;
export declare function notebookToEditableText(notebook: NotebookDocument): string;
export declare function applyNotebookEditableText(notebook: NotebookDocument, text: string, displayPath: string): NotebookDocument;
export declare function readEditableNotebookText(absolutePath: string, displayPath: string): string;
export declare function serializeEditedNotebookText(absolutePath: string, displayPath: string, text: string): string;
//# sourceMappingURL=notebook.d.ts.map