/** * 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: * * 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; execution_count?: number | null; outputs?: unknown[]; [key: string]: unknown; } export interface NotebookDocument { cells: NotebookCell[]; metadata: Record; 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