document-outline-extractor
Version:
Extract structured outlines from documents with optional AI enhancement
84 lines • 2.01 kB
TypeScript
export interface OutlineNode {
level: number;
title: string;
children: OutlineNode[];
metadata?: {
lineNumber?: number;
wordCount?: number;
[key: string]: any;
};
}
export interface Heading {
level: number;
title: string;
lineNumber?: number;
}
export type OutlineFormat = 'tree' | 'markdown' | 'json' | 'flat';
export type ChunkingStrategy = 'heading' | 'size' | 'smart';
export interface ExtractOptions {
format?: OutlineFormat;
maxDepth?: number;
minHeadingLevel?: number;
maxHeadingLevel?: number;
includeMetadata?: boolean;
chunkingStrategy?: ChunkingStrategy;
}
export interface OpenAIConfig {
baseUrl: string;
apiKey: string;
model?: string;
apiVersion?: string;
temperature?: number;
maxTokens?: number;
}
export interface OutlineExtractorConfig {
openai?: OpenAIConfig;
chunkSize?: number;
qualityThreshold?: number;
defaultFormat?: OutlineFormat;
caching?: boolean;
}
export interface QualityMetrics {
score: number;
richness: number;
balance: number;
coherence: number;
coverage: number;
headingCount: number;
depth: number;
}
export interface ChatMessage {
role: 'system' | 'user' | 'assistant';
content: string;
}
export interface ChatCompletionOptions {
baseUrl: string;
apiKey: string;
apiVersion?: string;
model: string;
messages: ChatMessage[];
temperature?: number;
maxTokens?: number;
maxCompletionTokens?: number;
responseFormat?: any;
reasoningEffort?: string;
}
export interface ChatCompletionResponse {
id?: string;
created?: number;
model?: string;
choices?: Array<{
index?: number;
message?: {
role: string;
content?: string;
};
finishReason?: string;
}>;
usage?: {
promptTokens?: number;
completionTokens?: number;
totalTokens?: number;
};
}
//# sourceMappingURL=types.d.ts.map