import { BitcoinRpcClient } from "./rpc";
import { CaravanWalletConfig, ExtendedPublicKey, AddressType, Network } from "../types/caravan";
/**
 * Service for managing Caravan wallets
 */
export declare class CaravanService {
    private readonly rpc;
    private readonly caravanDir;
    private readonly keysDir;
    constructor(rpc: BitcoinRpcClient, caravanDir: string, keysDir: string);
    /**
     * Get the path to the Caravan configuration directory
     */
    getCaravanDir(): string;
    /**
     * Convert BIP32 path from 'h' notation to apostrophe notation
     * Example: "m/84h/1h/0h" becomes "m/84'/1'/0'"
     */
    convertBip32PathFormat(path: string): string;
    /**
     * Format a Caravan wallet config for export
     * This handles any needed conversions (like BIP32 path format)
     */
    formatCaravanConfigForExport(config: CaravanWalletConfig): CaravanWalletConfig;
    /**
     * List all Caravan wallet configurations
     */
    listCaravanWallets(): Promise<CaravanWalletConfig[]>;
    /**
     * Get a specific Caravan wallet by name
     */
    getCaravanWallet(name: string): Promise<CaravanWalletConfig | null>;
    /**
     * Save a Caravan wallet configuration
     */
    saveCaravanWalletConfig(config: CaravanWalletConfig): Promise<string>;
    /**
     * Create a new Caravan wallet configuration
     */
    createCaravanWalletConfig({ name, addressType, network, requiredSigners, totalSigners, extendedPublicKeys, startingAddressIndex, }: {
        name: string;
        addressType: AddressType;
        network: Network;
        requiredSigners: number;
        totalSigners: number;
        extendedPublicKeys: ExtendedPublicKey[];
        startingAddressIndex?: number;
    }): Promise<CaravanWalletConfig>;
    /**
     * Create a watch-only wallet for a Caravan wallet configuration
     */
    createWatchWalletForCaravan(caravanConfig: CaravanWalletConfig): Promise<string>;
    /**
     * Build wallet descriptors from a Caravan configuration
     */
    private buildDescriptorsFromCaravanConfig;
}
