import type { MemoryTier } from '../../rag/types.js';
export interface ScopeAssignment {
    tier: MemoryTier;
    namespace: string | null;
}
/**
 * PURE: map a row's tags to (tier, namespace). A `scope:!project <name>` whose name is a KNOWN umbrella
 * maps to that namespace; anything else (user/global, empty name, bare `scope:project`, unknown name) →
 * `shared`. Conservative by design: when in doubt, over-share (the never-FORGET axiom) — never isolate
 * a row to a namespace we can't verify.
 */
export declare function classifyScope(tags: string[]): ScopeAssignment;
export interface MigrateScopeResult {
    total: number;
    toProject: number;
    toShared: number;
    changed: number;
    applied: boolean;
}
/** Run the migration. `apply:false` (default) is a dry-run that mutates nothing. */
export declare function migrateScope(opts: {
    dbUrl: string;
    apply: boolean;
}): Promise<MigrateScopeResult>;
//# sourceMappingURL=migrate-scope.d.ts.map