/**
 * Specification Manager for the Idea Honing Tool
 *
 * This component handles the creation, storage, and retrieval of specification documents.
 */
import { SpecificationDocument } from '../models/specification.js';
import { SearchFilter, SearchResult } from '../utils/search-indexer.js';
/**
 * Creates a new specification document
 *
 * @param title - Title of the specification
 * @param description - Description of the feature or idea
 * @param author - Author of the specification
 * @param templateName - Name of the template to use (defaults to 'default-template')
 * @param projectId - Optional project identifier
 * @param featureId - Optional feature identifier
 * @param additionalData - Optional additional data for template rendering
 * @returns Promise that resolves with the created specification
 */
export declare function createSpecification(title: string, description: string, author: string, templateName?: string, projectId?: string, featureId?: string, additionalData?: Record<string, any>): Promise<SpecificationDocument>;
/**
 * Retrieves a specification document by ID
 *
 * @param specId - Specification identifier
 * @param projectId - Optional project identifier
 * @returns Promise that resolves with the retrieved specification
 */
export declare function getSpecification(specId: string, projectId?: string): Promise<SpecificationDocument>;
/**
 * Updates a specification document
 *
 * @param specId - Specification identifier
 * @param updates - Updates to apply to the specification
 * @param author - Author of the changes
 * @param changeDescription - Description of the changes
 * @returns Promise that resolves with the updated specification
 */
export declare function updateSpecification(specId: string, updates: Partial<SpecificationDocument>, author: string, changeDescription: string): Promise<SpecificationDocument>;
/**
 * Lists all specifications, optionally filtered by project
 *
 * @param projectId - Optional project identifier to filter by
 * @returns Promise that resolves with an array of specification metadata
 */
export declare function listAllSpecifications(projectId?: string): Promise<any[]>;
/**
 * Searches for specifications by keyword and filters
 *
 * @param query - Search query
 * @param filters - Optional search filters
 * @returns Promise that resolves with an array of search results
 */
export declare function searchSpecifications(query: string, filters?: SearchFilter): Promise<SearchResult[]>;
/**
 * Resolves conflicts between different versions of a specification
 *
 * @param specId - Specification identifier
 * @param conflictingVersions - Array of conflicting versions
 * @param resolutionStrategy - Strategy for resolving conflicts ('latest', 'merge', or 'manual')
 * @param manualResolution - Manual resolution data (required if strategy is 'manual')
 * @param author - Author of the resolution
 * @returns Promise that resolves with the resolved specification
 */
/**
 * Rebuilds the search index for all specifications
 *
 * @returns Promise that resolves when the index is rebuilt
 */
export declare function rebuildSearchIndex(): Promise<void>;
/**
 * Resolves conflicts between different versions of a specification
 *
 * @param specId - Specification identifier
 * @param conflictingVersions - Array of conflicting versions
 * @param resolutionStrategy - Strategy for resolving conflicts ('latest', 'merge', or 'manual')
 * @param manualResolution - Manual resolution data (required if strategy is 'manual')
 * @param author - Author of the resolution
 * @returns Promise that resolves with the resolved specification
 */
export declare function resolveConflicts(specId: string, conflictingVersions: SpecificationDocument[], resolutionStrategy: 'latest' | 'merge' | 'manual', manualResolution?: Partial<SpecificationDocument>, author?: string): Promise<SpecificationDocument>;
