import { CourseConfig } from '@vue-skuilder/common';
import { D as DocType } from './types-legacy-DDY4N-Uq.js';

interface StaticCourseManifest {
    version: string;
    courseId: string;
    courseName: string;
    courseConfig: CourseConfig | null;
    lastUpdated: string;
    documentCount: number;
    chunks: ChunkMetadata[];
    indices: IndexMetadata[];
    designDocs: DesignDocument[];
}
interface ChunkMetadata {
    id: string;
    docType: DocType;
    startKey: string;
    endKey: string;
    documentCount: number;
    path: string;
}
interface IndexMetadata {
    name: string;
    type: 'btree' | 'hash' | 'spatial' | 'view';
    path: string;
}
interface DesignDocument {
    _id: string;
    views: {
        [viewName: string]: {
            map: string;
            reduce?: string;
        };
    };
}
interface AttachmentData {
    docId: string;
    attachmentName: string;
    filename: string;
    path: string;
    contentType: string;
    length: number;
    digest?: string;
    buffer: Buffer;
}
interface PackerConfig {
    chunkSize: number;
    includeAttachments: boolean;
}
interface PackedCourseData {
    manifest: StaticCourseManifest;
    chunks: Map<string, any[]>;
    indices: Map<string, any>;
    attachments?: Map<string, AttachmentData>;
}

export type { AttachmentData as A, ChunkMetadata as C, DesignDocument as D, IndexMetadata as I, PackerConfig as P, StaticCourseManifest as S, PackedCourseData as a };
