/**
 * Memoized dynamic-import loader for the Midnight JS SDK.
 *
 * Background: every Midnight SDK dependency tree terminates at
 * `@midnight-ntwrk/compact-runtime`, which is pure ESM and ships no CJS export.
 * NIGHTGATE itself is CommonJS (`"type": "commonjs"`). Top-level `import` from
 * TypeScript would compile to `require()`, which fails on the SDK at runtime.
 *
 * Solution: load the SDK once via dynamic `import()`, cache the namespace
 * objects, and reuse. Call sites that need SDK exports await `loadMidnightSdk()`.
 *
 * The SDK is async to load (Promise<NamespaceObject>) but each call after the
 * first resolves synchronously from the cache.
 */
type MidnightSdkContracts = any;
type MidnightSdkIndexerProvider = any;
type MidnightSdkProofProvider = any;
type MidnightSdkZkConfig = any;
type MidnightSdkLevelState = any;
type MidnightSdkWalletFacade = any;
type LedgerV8 = any;
type WalletSdkShielded = any;
type WalletSdkUnshielded = any;
type WalletSdkDust = any;
type WalletSdkAbstractions = any;
export interface MidnightSdkBundle {
    contracts: MidnightSdkContracts;
    indexer: MidnightSdkIndexerProvider;
    proof: MidnightSdkProofProvider;
    zk: MidnightSdkZkConfig;
    level: MidnightSdkLevelState;
    facade: MidnightSdkWalletFacade;
}
export declare function loadMidnightSdk(): Promise<MidnightSdkBundle>;
export declare function resetMidnightSdkCache(): void;
export declare function loadLedgerV8(): Promise<LedgerV8>;
export interface WalletSdkBundle {
    shielded: WalletSdkShielded;
    unshielded: WalletSdkUnshielded;
    dust: WalletSdkDust;
    abstractions: WalletSdkAbstractions;
}
export declare function loadWalletSdk(): Promise<WalletSdkBundle>;
export {};
