import type { FasedAgentConfig } from "../config/config.js";
import type { WalletProviderId } from "../config/types.wallet.js";
import { type WalletResolvedSelection } from "./wallet-provider-registry.js";
export type WalletActionSelectionErrorCode = "wallet_role_not_allowed" | "wallet_handle_required" | "wallet_not_found" | "wallet_ambiguous";
export declare class WalletActionSelectionError extends Error {
    readonly code: WalletActionSelectionErrorCode;
    constructor(code: WalletActionSelectionErrorCode, message: string);
}
export declare function parseWalletHandle(value: string | undefined): string | undefined;
export type AgentWalletSelection = WalletResolvedSelection & {
    walletId: string;
    walletName: string;
    providerId: WalletProviderId;
    role: "agent";
    walletHandle: string;
};
export type WalletActionSelectionRole = "agent";
export type WalletActionSelection = WalletResolvedSelection & {
    walletId: string;
    walletName: string;
    providerId: WalletProviderId;
    role: WalletActionSelectionRole;
    walletHandle: string;
};
export declare function resolveWalletActionSelection(params: {
    config?: FasedAgentConfig;
    env?: NodeJS.ProcessEnv;
    walletHandle?: string;
    walletId?: string;
    walletName?: string;
    providerId?: WalletProviderId;
    agentId?: string;
    allowedRoles?: WalletActionSelectionRole[];
}): WalletActionSelection;
export declare function resolveAgentWalletSelection(params: {
    config?: FasedAgentConfig;
    env?: NodeJS.ProcessEnv;
    walletHandle?: string;
    walletId?: string;
    walletName?: string;
    providerId?: WalletProviderId;
    agentId?: string;
}): AgentWalletSelection;
