import type { Command } from 'commander';
import { type SessionsBackupClient } from '../lib/session/sync/net-client.js';
import { type ParsedBundle } from '../lib/session/bundle.js';
export declare function registerSessionsImportCommand(sessionsCmd: Command): void;
/**
 * --from-r2: download every session-backup object from the r2.backups bucket and
 * assemble them into one bundle for the normal placement path. Each object is a
 * self-describing one-record bundle written by `export --to-r2`, so it parses
 * with the same parseBundle. A non-bundle object under the prefix (e.g. a legacy
 * plaintext transcript from the retired sync) is skipped with a count, never
 * silently swallowed. Fails loud when the bucket holds no restorable backups.
 */
/**
 * `--from-r2` preflight as a pure, unit-testable function: fail loud when the
 * backup target is not configured. Returns the message to fail loud with, or null
 * when the restore may proceed. Kept pure (no process.exit, no keychain read) so
 * the command and its test drive the same decision.
 */
export declare function r2ImportGateError(fromR2: boolean, isConfigured: boolean): string | null;
export declare function pullFromR2(resolvedClient?: SessionsBackupClient): Promise<ParsedBundle>;
