/**
 * Write the canonical review-extensions.txt file consumed by
 * .claude/hooks/content-hash.sh. One extension per line, leading dot,
 * trailing newline. Atomic via temp + rename so a concurrent hook fire
 * sees either the old or new contents, never a partial write. (#1527)
 */
export declare function writeReviewExtensionsFile(totemDirAbs: string, extensions: readonly string[]): string;
export interface SyncCommandOptions {
    full?: boolean;
    prune?: boolean;
    quiet?: boolean;
    /**
     * Run only Phase A — deterministic pack-resolution + manifest write
     * (`installed-packs.json`). Skips `requireEmbedding`, `runSync`, the
     * post-sync `review-extensions.txt` write, the global-registry
     * update, and prune. Designed for CI environments without API keys
     * after a `@mmnto/totem` cohort bump (mmnto-ai/totem#1811, ADR-101).
     * Mutually exclusive with `indexOnly`, `full`, and `prune`.
     */
    packsOnly?: boolean;
    /**
     * Run only Phase B — `runSync` + post-sync side outputs. Skips
     * pack-resolution + `installed-packs.json` write. Use when the
     * manifest is already current and only the vector-store needs to
     * re-embed (mmnto-ai/totem#1811, ADR-101). Mutually exclusive with
     * `packsOnly`.
     */
    indexOnly?: boolean;
}
export declare function syncCommand(options: SyncCommandOptions): Promise<void>;
//# sourceMappingURL=sync.d.ts.map