import { type VisionClawConfig, type GoogleTokens, type OwnerConfig, type TelegramAccessConfig } from "./types.js";
/**
 * Set the active profile. Must be called before any config access.
 * Profile names must be lowercase alphanumeric with hyphens.
 */
export declare function setProfile(name: string): void;
export declare function getProfile(): string;
export declare function getBaseDir(): string;
export declare function getProfilesDir(): string;
export declare function getConfigDir(): string;
export declare function getConfigFile(): string;
export declare function getTokensFile(): string;
export declare function getOwnerFile(): string;
export declare function getTelegramAccessFile(): string;
export declare function getSessionFile(): string;
export declare function getOnboardingSessionFile(): string;
export declare function getSkillsDir(): string;
export declare function getUserCatalogDir(): string;
export declare function getMemoriesDir(): string;
/**
 * Directory where the Claude Code CLI writes its **auto-memory** artifacts
 * (`CLAUDE.md`, per-scope memory files, etc.). Deliberately separate from
 * {@link getMemoriesDir} (which hosts our own SQLite-backed `memory.ts`)
 * so operators can tell at a glance which system owns which files.
 *
 * The path is relayed to the CLI via the `autoMemoryDirectory` field of
 * `<profile>/.claude/settings.local.json` — see
 * `seedClaudeAutoMemorySetting()` in `src/config/claude-settings.ts`. The
 * CLI expands `~/` on its side but here we keep an absolute path for
 * unambiguity.
 */
export declare function getClaudeAutoMemoryDir(): string;
/**
 * Claude Code CLI **localSettings** file. Per the CLI Zod schema, settings
 * here override `userSettings` (`~/.claude/settings.json`) and, unlike
 * team-shared `projectSettings` (`.claude/settings.json`), are honored for
 * sensitive fields like `autoMemoryDirectory` (which the CLI deliberately
 * ignores in checked-in projectSettings for supply-chain reasons).
 *
 * Because the agent session runs with `cwd = getConfigDir()`, this path
 * is the one the CLI loads at session start.
 */
export declare function getClaudeLocalSettingsFile(): string;
export declare function getFailedUploadsDir(): string;
export declare function getScreenshotsDir(): string;
export declare function getPlaywrightProfileDir(): string;
export declare function getPlaywriterProfileDir(): string;
export declare function getProfilePhotosDir(): string;
/**
 * Directory used to materialize runtime-delivered tunnel credentials for the
 * active profile. This is the private home for `cloudflared` config.yml and
 * the `{UUID}.json` credentials blob when they are issued via the
 * onboarding-service heartbeat channel — deliberately distinct from the
 * user's shared `~/.cloudflared/` directory so multiple profiles and the
 * user's personal cloudflared setup don't collide.
 */
export declare function getProfileTunnelDir(): string;
/**
 * Default filename for the profile's `cloudflared` config.yml.
 * Callers should prefer these helpers over constructing paths ad-hoc so that
 * any future directory migration stays centralized here.
 */
export declare function getProfileTunnelConfigPath(): string;
export declare function getProfileTunnelCredentialsPath(tunnelId: string): string;
export interface PendingUpgradeInfo {
    fromVersion: string;
    toVersion: string;
    upgradedAt: string;
    /** Command ID from the onboarding service, if the upgrade was triggered remotely. */
    commandId?: number;
}
export interface PendingRestartInfo {
    channel: string;
    sender: string;
    requestedAt: string;
}
export declare function writePendingRestart(info: PendingRestartInfo): void;
export declare function consumePendingRestart(): PendingRestartInfo | null;
export declare function writePendingUpgrade(info: PendingUpgradeInfo): void;
/**
 * Attach a remote command ID to the pending-upgrade marker so the agent
 * can auto-ack the command after restart.
 */
export declare function addCommandIdToPendingUpgrade(commandId: number): void;
export declare function consumePendingUpgrade(): PendingUpgradeInfo | null;
export declare function ensureConfigDir(): void;
export declare function configExists(): boolean;
export declare function loadConfig(): VisionClawConfig;
export declare function saveConfig(config: VisionClawConfig): void;
export declare function ownerConfigExists(): boolean;
export declare function loadOwnerConfig(): OwnerConfig;
export declare function saveOwnerConfig(config: OwnerConfig): void;
export declare function loadTelegramAccessConfig(): TelegramAccessConfig;
export declare function saveTelegramAccessConfig(config: TelegramAccessConfig): void;
export declare function isOnboardingComplete(): boolean;
export declare function loadGoogleTokens(): GoogleTokens;
export declare function saveGoogleTokens(tokens: GoogleTokens): void;
export interface UsageSnapshot {
    usedInputTokens: number;
    contextWindow: number;
    usedPct: number;
    /** Total type:"image" blocks (real + placeholder) in the transcript.
     *  Used by maybeCompact() to trigger compaction before hitting the API limit. */
    allImageBlocks?: number;
    /** Timestamp (ms) when this snapshot was captured. */
    capturedAtMs?: number;
}
export declare function loadSessionId(mode?: "general" | "coding"): string | null;
export declare function loadUsageSnapshot(mode: "general" | "coding"): UsageSnapshot | null;
export declare function saveUsageSnapshot(snapshot: UsageSnapshot, mode: "general" | "coding"): void;
export declare function saveSessionId(sessionId: string, mode?: "general" | "coding"): void;
export interface PreviousSessionEntry {
    id: string;
    mode: "general" | "coding";
    rotatedAt: string;
}
export declare function loadPreviousSessionIds(): PreviousSessionEntry[];
export declare function rotateSessionId(mode: "general" | "coding"): void;
export declare function loadOnboardingSessionId(): string | null;
export declare function saveOnboardingSessionId(sessionId: string): void;
export declare function deleteOnboardingSession(): void;
export interface TOTPSecretEntry {
    service: string;
    secret: string;
    issuer?: string;
    account?: string;
    digits?: number;
    period?: number;
    algorithm?: string;
    storedAt: string;
}
export declare function getTOTPSecretsFile(): string;
export declare function loadTOTPSecrets(): TOTPSecretEntry[];
export declare function saveTOTPSecrets(secrets: TOTPSecretEntry[]): void;
export declare function getDynamicMcpServersFile(): string;
/**
 * Load user-configured dynamic MCP servers from disk.
 * Returns an empty record if the file does not exist or is malformed.
 */
export declare function loadDynamicMcpServers(): Record<string, Record<string, unknown>>;
/**
 * Persist dynamic MCP server configs to disk.
 */
export declare function saveDynamicMcpServers(servers: Record<string, Record<string, unknown>>): void;
/**
 * Build the pricing page URL from the agent's configured onboarding service URL.
 * Falls back to the production default when `onboardingServiceUrl` is not set.
 */
export declare function buildPricingUrl(config: VisionClawConfig): string;
//# sourceMappingURL=index.d.ts.map