/**
 * olam memory mode <local|cloud> — flip the workspace's agent-memory
 * source between the host-process (Phase A) and a remote agentmemory
 * deployment (Phase C).
 *
 * Reads + rewrites `.olam/config.yaml`'s `memory:` block via the schema
 * defined in C1. Idempotent: re-running the same mode is a noop.
 *
 *   mode local              → memory.mode = "local"; ensures host-process running
 *   mode cloud [--url ...]  → prompts for URL + bearer secret, writes both to
 *                              config + ~/.olam/cloud-memory-secret, stops the
 *                              local host-process. Operator must re-create
 *                              active worlds for the new env to take effect.
 *
 * Plan reference: docs/plans/olam-agent-memory-distributed/phase-c-tasks.md C3
 */
import type { Command } from 'commander';
/** Test seam: prompts + IO injection. */
export interface ModeDeps {
    readonly cwd?: string;
    /** Returns a string (or null on EOF). Defaults to readline.question. */
    readonly promptText?: (q: string) => Promise<string>;
    /** Returns the bearer secret. Default: readline (NOT echoed by terminal). */
    readonly promptSecret?: (q: string) => Promise<string>;
    /** Default: writeCloudMemorySecret. Lets tests redirect to a tmpdir. */
    readonly writeSecret?: (value: string) => void;
    /** Bypass interactive prompts. */
    readonly url?: string;
    /** Bypass interactive prompts. */
    readonly secret?: string;
    /** Test seam: replace start/stop invocations. */
    readonly runStart?: () => Promise<number>;
    readonly runStop?: () => Promise<number>;
}
export type ModeOutcome = {
    outcome: 'noop';
    mode: 'local' | 'cloud';
} | {
    outcome: 'flipped-to-local';
} | {
    outcome: 'flipped-to-cloud';
    url: string;
};
export declare function runMemoryModeLocal(deps?: ModeDeps): Promise<ModeOutcome>;
export declare function runMemoryModeCloud(deps?: ModeDeps): Promise<ModeOutcome>;
export declare function registerMemoryMode(cmd: Command): void;
//# sourceMappingURL=mode.d.ts.map