import { ProductRequirement, CreateRequirementOptions, UpdateRequirementOptions, RequirementFilter, RequirementSearchOptions, RequirementStoryLink, RequirementsReport, ImplementationStatusUpdate } from './types.js';
export declare class ProductRequirementsStore {
    private requirementsPath;
    private linksPath;
    private changesPath;
    constructor(dataDir?: string);
    private ensureDataDir;
    private loadRequirements;
    private saveRequirements;
    private loadLinks;
    private saveLinks;
    private loadChanges;
    private saveChanges;
    private recordChange;
    createRequirement(options: CreateRequirementOptions): Promise<ProductRequirement>;
    getRequirement(id: string): Promise<ProductRequirement | null>;
    updateRequirement(options: UpdateRequirementOptions): Promise<ProductRequirement | null>;
    deleteRequirement(id: string): Promise<boolean>;
    listRequirements(filter?: RequirementFilter): Promise<ProductRequirement[]>;
    searchRequirements(options: RequirementSearchOptions): Promise<ProductRequirement[]>;
    linkRequirementToStory(requirementId: string, storyId: string, linkType?: string, notes?: string): Promise<RequirementStoryLink>;
    getRequirementsByStory(storyId: string): Promise<ProductRequirement[]>;
    getStoriesByRequirement(requirementId: string): Promise<string[]>;
    updateImplementationStatus(update: ImplementationStatusUpdate): Promise<ProductRequirement | null>;
    getRequirementsByStatus(status: ProductRequirement['status']): Promise<ProductRequirement[]>;
    generateRequirementsReport(options?: {
        format?: 'json' | 'markdown' | 'html';
        include_implementation_status?: boolean;
        filter?: RequirementFilter;
        group_by?: 'type' | 'status' | 'priority';
    }): Promise<RequirementsReport>;
}
//# sourceMappingURL=store.d.ts.map