/**
 * Shared TOS (Volcengine Object Storage) credentials and configuration.
 *
 * Three tiers, highest priority first:
 *   1. Per-agent bundle — reserved (currently unused; symmetry with the
 *      other credential modules).
 *   2. Shared in-memory heartbeat cache (`sharedKeys.tosAccessKey*`).
 *   3. Local `config.tosAccessKey*` — written through to disk by the
 *      heartbeat apply path so the agent survives an offline server.
 *
 * `config.imageArchive` is a separate, deliberately per-agent override
 * that selects a different bucket/region/endpoint and is consulted by
 * `resolveTosArchiveConfig` ahead of all three credential tiers above.
 * It is not a "cache" of server-issued credentials and is never
 * overwritten by the heartbeat.
 */
import type { VisionClawConfig } from "./config/types.js";
export interface TosCredentials {
    accessKeyId: string;
    accessKeySecret: string;
    region: string;
    endpoint: string;
}
export interface TosArchiveConfig extends TosCredentials {
    provider: "tos";
    bucket: string;
}
export declare function setBundleTosCredentials(accessKeyId: string | undefined, accessKeySecret: string | undefined): boolean;
export declare function setSharedTosCredentials(accessKeyId: string | undefined, accessKeySecret: string | undefined): boolean;
/**
 * Resolve TOS credentials.
 *
 * Precedence:
 *   - `config.imageArchive` (deliberate per-agent override; selects a
 *     different bucket/region/endpoint and is not server-managed)
 *   - bundle > shared > top-level `config.tosAccessKey*`
 */
export declare function resolveTosCredentials(config: VisionClawConfig): TosCredentials | undefined;
/**
 * Resolve the full TOS archive config for image archiving.
 * Returns undefined if no credentials are available.
 */
export declare function resolveTosArchiveConfig(config: VisionClawConfig): TosArchiveConfig | undefined;
//# sourceMappingURL=tos-credentials.d.ts.map