import type { WalletChain } from "../../config/types.wallet.js";
import { type LocalSocketSignerRequest } from "../local-socket-signer-protocol.js";
import { type WalletProviderAdapter, type WalletProviderAddressMap, type WalletProviderBalanceResult, type WalletProviderCapabilities, type WalletProviderHealth, type WalletProviderPrepareTxRequest, type WalletProviderPrepareTxResult, type WalletProviderSendTxRequest, type WalletProviderSendTxResult, type WalletProviderSignTxResult } from "../wallet-provider-adapter.js";
export type LocalSocketSignerHealthProbe = {
    ok: boolean;
    details?: string;
    readOnly?: boolean;
    keystoreType?: string;
    chains?: WalletChain[];
};
export type LocalSocketSignerCallOptions = {
    timeoutMs?: number;
    maxResponseBytes?: number;
};
export declare function assertSecureLocalSignerSocket(socketPath: string): void;
export declare function callLocalSocketSigner<T>(socketPath: string, payload: LocalSocketSignerRequest, options?: LocalSocketSignerCallOptions): Promise<T>;
export declare function probeLocalSocketSignerHealth(socketPath: string): Promise<LocalSocketSignerHealthProbe>;
export declare class LocalSocketSignerAdapter implements WalletProviderAdapter {
    private readonly socketPath;
    private readonly options?;
    readonly id: "local-socket-signer";
    readonly displayName = "Local Socket Signer";
    readonly capabilities: WalletProviderCapabilities;
    constructor(socketPath: string, options?: {
        backendSocketPath?: string;
        rpcUrl?: string;
        scopedWalletId?: string;
    } | undefined);
    supportsChain(chain: WalletChain): boolean;
    health(): Promise<WalletProviderHealth>;
    getAddresses(options?: {
        walletId?: string;
    }): Promise<WalletProviderAddressMap>;
    getBalance(chain: WalletChain, options?: {
        walletId?: string;
    }): Promise<WalletProviderBalanceResult>;
    prepareTx(request: WalletProviderPrepareTxRequest): Promise<WalletProviderPrepareTxResult>;
    sendTx(request: WalletProviderSendTxRequest): Promise<WalletProviderSendTxResult>;
    signTx(request: WalletProviderSendTxRequest): Promise<WalletProviderSignTxResult>;
    private sendSplTokenTx;
    private sendSolanaInstruction;
}
export declare function resolveLocalSocketSignerPath(env: NodeJS.ProcessEnv): string;
export declare function requireLocalSocketSignerPath(env: NodeJS.ProcessEnv): string;
