/**
 * Mock Token Manager Module
 *
 * Responsible for:
 * - Managing mock Bitcoin tokens for testing
 * - Minting mock BTC tokens
 * - Approving mock BTC spending
 * - Querying mock BTC balances
 *
 * This module is for testing only and should not be used in production
 */
import { Result } from '../../types/result';
import { Satoshis } from '../../types/branded/domain-values';
import { SDKError } from '../../utils/error-handler';
import type { ContractManager } from '../contract/contract-manager.module';
/**
 * Mock Token Manager configuration
 */
export interface MockTokenManagerConfig {
    /** Contract manager for accessing mock token contracts */
    contractManager: ContractManager;
    /** Network identifier */
    network: string;
    /** Enable debug logging */
    debug?: boolean;
    /** Transaction timeout (ms) */
    transactionTimeoutMs?: number;
}
/**
 * Mock token transaction result
 */
export interface MockTokenTransactionResult {
    /** Transaction hash */
    transactionHash: string;
    /** Block number */
    blockNumber: number;
    /** Gas used */
    gasUsed: string;
    /** Transaction was successful */
    success: boolean;
}
/**
 * Mock Token Manager Module
 *
 * Provides utilities for working with mock Bitcoin tokens in test environments
 *
 * ⚠️ WARNING: This module is for testing only. Do not use in production.
 */
export declare class MockTokenManager {
    private readonly config;
    constructor(config: MockTokenManagerConfig);
    /**
     * Mint mock BTC tokens
     *
     * @param amount - Amount to mint in satoshis
     * @param recipient - Recipient address
     * @returns Transaction result
     */
    mintMockBTC(amount: Satoshis, recipient: string): Promise<Result<MockTokenTransactionResult, SDKError>>;
    /**
     * Approve mock BTC spending
     *
     * @param spender - Spender address
     * @param amount - Amount to approve in satoshis
     * @returns Transaction result
     */
    approveMockBTC(spender: string, amount: Satoshis): Promise<Result<MockTokenTransactionResult, SDKError>>;
    /**
     * Get mock BTC balance
     *
     * @param address - Address to query
     * @returns Balance in satoshis
     */
    getMockBTCBalance(address: string): Promise<Result<Satoshis, SDKError>>;
    /**
     * Check if current network is production (mainnet)
     */
    private isProductionNetwork;
}
/**
 * Factory function to create a MockTokenManager instance
 */
export declare function createMockTokenManager(config: MockTokenManagerConfig): Result<MockTokenManager, SDKError>;
