import type Database from 'better-sqlite3';
import type { SynapseRecord } from '../../types/synapse.types.js';
type SynapseCreate = Omit<SynapseRecord, 'id' | 'activation_count' | 'last_activated_at' | 'created_at' | 'updated_at'>;
type SynapseUpdate = Partial<Omit<SynapseRecord, 'id' | 'created_at'>>;
export declare class SynapseRepository {
    private db;
    private stmts;
    constructor(db: Database.Database);
    create(data: SynapseCreate): number;
    getById(id: number): SynapseRecord | undefined;
    update(id: number, data: SynapseUpdate): boolean;
    delete(id: number): boolean;
    getOutgoing(sourceType: string, sourceId: number): SynapseRecord[];
    getIncoming(targetType: string, targetId: number): SynapseRecord[];
    findBySourceTarget(sourceType: string, sourceId: number, targetType: string, targetId: number, synapseType: string): SynapseRecord | undefined;
    findByWeight(minWeight: number, maxWeight?: number): SynapseRecord[];
    findConnected(nodeType: string, nodeId: number): SynapseRecord[];
    findInactiveSince(cutoff: string): SynapseRecord[];
    topByWeight(limit: number): SynapseRecord[];
    topDiverse(perType: number): SynapseRecord[];
    countNodes(): number;
    totalCount(): number;
    avgWeight(): number;
    countByType(): Record<string, number>;
}
export {};
