/**
 * ETH and WETH related types and constants
 */
import type { Hex } from './common';
/** Native ETH address (zero address) */
export declare const NATIVE_ETH_ADDRESS: Hex;
/**
 * Check if an address is native ETH (zero address)
 */
export declare function isNativeEth(address: Hex): boolean;
/**
 * Shield operation steps for ETH flow
 */
export declare enum ShieldStep {
    /** Wrapping ETH to WETH */
    wrapping = "wrapping",
    /** Approving token spend */
    approving = "approving",
    /** Executing shield transaction */
    shielding = "shielding",
    /** Registering with indexer */
    registering = "registering",
    /** Waiting for compliance check */
    compliance = "compliance"
}
/**
 * Unshield operation steps for ETH flow
 */
export declare enum UnshieldStep {
    /** Fetching notes and proofs */
    preparing = "preparing",
    /** Signing transaction */
    signing = "signing",
    /** Generating ZK proof */
    proving = "proving",
    /** Executing unshield transaction */
    unshielding = "unshielding",
    /** Unwrapping WETH to ETH */
    unwrapping = "unwrapping"
}
/**
 * Progress info for multi-step operations
 */
export interface OperationProgress {
    /** Current step */
    step: ShieldStep | UnshieldStep;
    /** Human-readable message */
    message: string;
    /** Optional transaction hash for the current step */
    txHash?: Hex;
}
/**
 * Callback for operation progress updates
 */
export type OnProgress = (progress: OperationProgress) => void;
/**
 * Raw progress events emitted by the Rust SDK for the shield flow.
 *
 * The `step` discriminant matches the `ShieldProgress` enum in
 * `privacy-boost-core`. Callers shouldn't normally need this — `VaultResource`
 * translates it into `OperationProgress` before surfacing to the user.
 */
export type ShieldRawProgress = {
    step: 'preparing';
} | {
    step: 'wrapping';
} | {
    step: 'wrapConfirmed';
    txHash: string;
} | {
    step: 'approveSkipped';
} | {
    step: 'approving';
} | {
    step: 'approveConfirmed';
    txHash: string;
} | {
    step: 'buildingProof';
} | {
    step: 'shielding';
} | {
    step: 'shieldSubmitted';
    txHash: string;
} | {
    step: 'shieldConfirmed';
    txHash: string;
    requestId: string;
};
/**
 * Raw progress events emitted by the Rust SDK for the unshield flow.
 */
export type UnshieldRawProgress = {
    step: 'preparing';
} | {
    step: 'proving';
} | {
    step: 'submitting';
} | {
    step: 'submitted';
    requestId: string;
};
//# sourceMappingURL=eth.d.ts.map