import { type FasedAgentConfig } from "../config/config.js";
import type { WalletProviderId } from "../config/types.wallet.js";
import { readWalletCustodyStatus } from "./wallet-custody.js";
import { type ResolvedWalletRuntimeConfig } from "./wallet-runtime-config.js";
export type WalletStatusSnapshot = {
    managedMode: boolean;
    provider: {
        id: WalletProviderId;
    };
    enabled: boolean;
    mode: "managed" | "external";
    runtime: "external-docker" | "external-custom";
    settlement: {
        class: "real-chain";
        realChainReady: boolean;
        summary: string;
    };
    chains: Array<"solana">;
    wallets?: Array<{
        id: string;
        name: string;
        providerId: WalletProviderId;
        addresses?: {
            solana?: string;
        };
        balances?: {
            solana?: string;
        };
        readiness: {
            keystore: boolean;
            rpc: boolean;
            api?: boolean;
            ata?: boolean;
        };
    }>;
    service: {
        host: string;
        port: number;
        healthy: boolean;
        pid?: number;
        runtime?: string;
        startedAt?: string;
    };
    stack?: {
        configured: boolean;
        composePath: string;
        envPath: string;
        runningServices: number;
        healthy: boolean;
    };
    policy: {
        executionMode: "manual" | "autonomous";
        capsEnabled: boolean;
        directSigning: boolean;
        skillsEnabled: boolean;
        toolAccessMode: "owner-only" | "allowlist" | "all";
        allowAgents: string[];
        solana: {
            allowPrograms: string[];
            maxPerTx: string;
            maxDaily: string;
        };
    };
    approvalAuth: {
        mode: "none" | "webauthn";
        ready: boolean;
        passkeyCount: number;
        notes: string[];
        passkeys: Array<{
            id: string;
            label: string;
            createdAt: string;
            lastUsedAt?: string;
        }>;
        statePath: string;
    };
    custody: ReturnType<typeof readWalletCustodyStatus>;
    addresses?: {
        solana?: string;
    };
    paths: {
        rootDir: string;
        keysPath: string;
        pidPath: string;
    };
    checkedAt: string;
    startupState: "healthy" | "degraded" | "unreachable";
    authState: "ok" | "required" | "mismatch" | "unknown";
    authMode: "jwt-bootstrap" | "static-token-compat";
    authSource: "bootstrap" | "secret" | "env" | "stack-env" | "none";
    authBootstrap: {
        endpoint?: string;
        lastError?: string;
        lastSuccessAt?: string;
        expiresAt?: string;
    };
    error?: string;
};
export declare function readWalletStatusSnapshot(params?: {
    config?: FasedAgentConfig;
    env?: NodeJS.ProcessEnv;
    walletId?: string;
    approvalHost?: string;
}): Promise<WalletStatusSnapshot>;
export declare function summarizeWalletStatus(status: WalletStatusSnapshot): string;
export declare function resolveWalletConfigForRuntime(cfg: FasedAgentConfig, env?: NodeJS.ProcessEnv): ResolvedWalletRuntimeConfig;
