import { type TocOptions } from "../utils/toc-generator.js"; /** * Configuration options for index generation operations. * * Controls how documentation indexes are created, including content type, organization strategy, * and output locations. * * @category Commands */ export interface IndexOptions { /** Type of index content to generate */ type: "links" | "import" | "embed" | "hybrid"; /** Strategy for organizing files in the index */ strategy: "directory" | "metadata" | "manual"; /** Where to place generated index files */ location: "all" | "root" | "branch" | "existing"; /** Name for generated index files */ name: string; /** Style for embedded content (Obsidian or standard markdown) */ embedStyle: "obsidian" | "markdown"; /** Path to custom template file */ template?: string; /** Perform a dry run without making actual changes */ dryRun: boolean; /** Enable verbose output with detailed progress information */ verbose: boolean; /** Maximum depth to traverse subdirectories */ maxDepth?: number; /** Prevent traversing up from the specified directory */ noTraverseUp: boolean; /** Explicit boundary path to limit scanning scope */ boundary?: string; /** Generate table of contents for each indexed file */ generateToc: boolean; /** Table of contents generation options */ tocOptions: TocOptions; } /** * Metadata extracted from markdown file frontmatter. * * Used for organizing and presenting files in generated indexes. * * @category Commands */ export interface FileMetadata { /** Document title from frontmatter */ title?: string; /** Document description from frontmatter */ description?: string; /** Category for grouping documents */ category?: string; /** Numeric order for sorting within groups */ order?: number; /** Tags associated with the document */ tags?: string[]; } /** * Represents a markdown file that can be included in an index. * * Contains file path information, extracted metadata, and content for use in index generation. * * @category Commands */ export interface IndexableFile { /** Absolute path to the file */ path: string; /** Path relative to the index generation root */ relativePath: string; /** Extracted frontmatter metadata */ metadata: FileMetadata; /** Full file content */ content: string; } /** * Execute the index command to generate documentation indexes. * * This is the main entry point for the index command functionality. It processes CLI options and * delegates to the core index generation logic. * * @category Commands * * @param directory - Target directory for index generation (defaults to current directory) * @param cliOptions - Raw CLI options object * * @internal This is a CLI wrapper - use generateIndexFiles for programmatic access */ /** CLI options interface for the index command */ interface IndexCliOptions { type?: "links" | "import" | "embed" | "hybrid"; strategy?: "directory" | "metadata" | "manual"; location?: "all" | "root" | "branch" | "existing"; name?: string; embedStyle?: "obsidian" | "markdown"; template?: string; dryRun?: boolean; verbose?: boolean; json?: boolean; maxDepth?: number; noTraverseUp?: boolean; boundary?: string; generateToc?: boolean; tocMinDepth?: number; tocMaxDepth?: number; tocIncludeLineNumbers?: boolean; } /** * CLI command handler for generating documentation indexes. * * Creates organized documentation indexes from markdown files using various strategies. Supports * multiple index types including links, imports, embeds, and hybrid modes. * * @example * ```bash * # Generate a links-based index * markmv index --type links --strategy directory * * # Generate with custom template * markmv index docs/ --type hybrid --template custom.md * * # Dry run with verbose output * markmv index --dry-run --verbose * ```; * * @param directory - Target directory for index generation * @param cliOptions - Command options specifying index parameters * * @group Commands */ export declare function indexCommand(directory: string | undefined, cliOptions: IndexCliOptions): Promise; export {}; //# sourceMappingURL=index.d.ts.map