import type Database from 'better-sqlite3'; import type { Feature, FeatureWithFlows } from '../schema.js'; export interface FeatureInsertOptions { description?: string; } /** * Repository for feature (product-level flow grouping) operations. */ export declare class FeatureRepository { private db; constructor(db: Database.Database); /** * Insert a new feature. */ insert(name: string, slug: string, options?: FeatureInsertOptions): number; /** * Add flow associations to a feature. */ addFlows(featureId: number, flowIds: number[]): void; /** * Get feature by ID. */ getById(id: number): Feature | null; /** * Get feature by slug. */ getBySlug(slug: string): Feature | null; /** * Get all features. */ getAll(): Feature[]; /** * Get a feature with its associated flows. */ getWithFlows(featureId: number): FeatureWithFlows | null; /** * Get features associated with a specific flow. */ getFeaturesForFlow(flowId: number): Feature[]; /** * Get count of features. */ getCount(): number; /** * Get count of flows assigned to at least one feature. */ getAssignedFlowCount(): number; /** * Update a feature's name and/or description. */ update(id: number, updates: { name?: string; description?: string; }): boolean; /** * Delete a feature and cascade delete its flow associations. */ delete(id: number): boolean; /** * Remove a flow-feature association. */ removeFlow(featureId: number, flowId: number): boolean; /** * Delete all features and their flow associations. */ clear(): number; } //# sourceMappingURL=feature-repository.d.ts.map