/**
 * SQLite SupervisorPolicy Repository (spec 093)
 *
 * Backed by the supervisor_policies table. Uniqueness is enforced at the
 * schema layer via the unique-(scope_type, scope_id, COALESCE(feature_id, ''))
 * index. {@link findPolicyForScope} implements the documented feature->scope
 * fallback (research decision 7).
 */
import type Database from 'better-sqlite3';
import type { ISupervisorPolicyRepository } from '../../application/ports/output/repositories/supervisor-policy-repository.interface.js';
import type { SupervisorPolicy } from '../../domain/generated/output.js';
export declare class SQLiteSupervisorPolicyRepository implements ISupervisorPolicyRepository {
    private readonly db;
    constructor(db: Database.Database);
    create(policy: SupervisorPolicy): Promise<void>;
    update(policy: SupervisorPolicy): Promise<void>;
    delete(id: string): Promise<void>;
    findById(id: string): Promise<SupervisorPolicy | null>;
    findByScope(scopeType: string, scopeId?: string): Promise<SupervisorPolicy | null>;
    findByScopeAndFeature(scopeType: string, scopeId: string | undefined, featureId: string): Promise<SupervisorPolicy | null>;
    findPolicyForScope(scopeType: string, scopeId: string | undefined, featureId: string | undefined): Promise<SupervisorPolicy | null>;
    listByScope(scopeType: string, scopeId?: string): Promise<SupervisorPolicy[]>;
    listAll(): Promise<SupervisorPolicy[]>;
}
//# sourceMappingURL=sqlite-supervisor-policy.repository.d.ts.map