import type { FasedAgentConfig } from "../config/config.js";
import type { WalletChain, WalletExecutionMode, WalletAuthMode, WalletRuntimeMode, WalletRuntimeKind, WalletProviderId, WalletToolAccessMode } from "../config/types.wallet.js";
export declare const DEFAULT_WALLET_RUNTIME_PORT = 19444;
export declare const DEFAULT_WALLET_RUNTIME_HOST = "127.0.0.1";
export declare const DEFAULT_WALLET_RUNTIME_VERSION = "0.1.1";
export declare const DEFAULT_WALLET_RUNTIME_SOURCE_REF = "v0.2.30";
export type ResolvedWalletPolicyCaps = {
    maxPerTx: bigint;
    maxDaily: bigint;
};
export type ResolvedWalletTokenPolicyCap = {
    maxPerTx: bigint;
    maxDaily: bigint;
};
export type ResolvedWalletPolicyConfig = {
    capsEnabled: boolean;
    directSigning: boolean;
    skillsEnabled: boolean;
    solana: {
        allowPrograms: string[];
        caps: ResolvedWalletPolicyCaps;
        tokenCaps: Record<string, ResolvedWalletTokenPolicyCap>;
    };
};
export type ResolvedWalletToolAccessConfig = {
    mode: WalletToolAccessMode;
    allowAgents: string[];
    allowSkills: string[];
    denySkills: string[];
    allowSources: string[];
};
export type ResolvedWalletRuntimeConfig = {
    enabled: boolean;
    mode: WalletRuntimeMode;
    runtime: WalletRuntimeKind;
    execution: {
        mode: WalletExecutionMode;
    };
    chains: WalletChain[];
    service: {
        host: string;
        port: number;
    };
    install: {
        enabled: boolean;
        version: string;
    };
    external: {
        kind: "docker" | "custom";
    };
    auth: {
        mode: WalletAuthMode;
        bootstrapUrl?: string;
    };
    source: {
        ref: string;
    };
    stack: {
        rootDir: string;
        composePath: string;
        envPath: string;
        projectName: string;
    };
    policy: ResolvedWalletPolicyConfig;
    toolAccess: ResolvedWalletToolAccessConfig;
};
export type ResolvedWalletPolicy = ResolvedWalletPolicyConfig;
export type ResolvedWalletToolAccess = ResolvedWalletToolAccessConfig;
export type WalletStatePaths = {
    rootDir: string;
    keysPath: string;
    dailyUsagePath: string;
    sendApprovalsPath: string;
    auditLogPath: string;
    sidecarPidPath: string;
    sidecarLogPath: string;
    sidecarMetaPath: string;
    stackRootDir: string;
    stackComposePath: string;
    stackEnvPath: string;
};
export declare function resolveWalletStatePaths(env?: NodeJS.ProcessEnv): WalletStatePaths;
export declare function ensureWalletStateDir(env?: NodeJS.ProcessEnv): WalletStatePaths;
export declare function resolveLocalSignerSocketPath(env?: NodeJS.ProcessEnv): string;
export declare function resolveLocalSignerSidecarPaths(socketPath: string): {
    pidPath: string;
    auditPath: string;
};
export declare function resolveLocalSignerMaterialRootDir(env?: NodeJS.ProcessEnv): string;
export declare function resolveLocalSignerBackendSocketPath(env?: NodeJS.ProcessEnv): string;
export declare function resolveLocalSignerRunAsUser(env?: NodeJS.ProcessEnv): string | undefined;
export declare function resolveWalletRuntimeConfig(cfg: FasedAgentConfig, env?: NodeJS.ProcessEnv): ResolvedWalletRuntimeConfig;
export declare function resolveWalletRuntimeProviderId(cfg: FasedAgentConfig, env?: NodeJS.ProcessEnv): WalletProviderId;
