import type { CodeChunk } from '../code/chunk.js';
import type { CodebaseIndex } from '../code/types.js';
import type { CodebaseIndexSlim } from '../code/slim.js';
import type { DocumentChunk } from '../doc/chunk.js';
import { type Yielder } from '../utils.js';
type SectionedBundle = {
    codeIndex?: CodebaseIndex | CodebaseIndexSlim;
    codeChunks?: CodeChunk[];
    documentChunks?: DocumentChunk[];
    corpusChunks?: unknown[];
    codeDocumentReferences?: unknown[];
};
export interface SectionedWorkspaceBundleReadTiming {
    section: string;
    startedAt: number;
    finishedAt: number;
    durationMs: number;
    present: boolean;
}
export type OnSectionedWorkspaceBundleReadTiming = (timing: SectionedWorkspaceBundleReadTiming) => void;
export declare function writeSectionedWorkspaceBundle(directory: string, bundle: SectionedBundle, signal?: AbortSignal): Promise<void>;
export declare function readSectionedWorkspaceBundle<TBundle extends SectionedBundle = SectionedBundle>(directory: string, signal?: AbortSignal, yielder?: Yielder, onTiming?: OnSectionedWorkspaceBundleReadTiming): Promise<TBundle>;
export {};
