/**
 * @license Apache-2.0
 */
import { type SapphireWrapConfig } from "@oasisprotocol/sapphire-paratime";
import { type Config, type CreateConfigParameters, type CreateConnectorFn, type Transport, injected } from "@wagmi/core";
import type { Chain } from "viem";
import type { CreateSapphireConfigParameters } from "./types.js";
export * from "@oasisprotocol/sapphire-viem-v2";
/**
 * Wrap the `window.ethereum` with the Sapphire encryption layer.
 * Used to provide encrypted transactions and calldata to Wagmi browser dApps.
 *
 * ```
 *    import { injectedWithSapphire } from '@oasisprotocol/sapphire-wagmi-v2';
 *
 *    export const config = createConfig({
 *      connectors: [
 *        injectedWithSapphire()
 *      ],
 *      ...
 *    });
 * ```
 *
 * @returns Same as injected()
 */
export declare function injectedWithSapphire(options?: SapphireWrapConfig): ReturnType<typeof injected>;
/**
 * Creates a wagmi configuration with wrapped EIP-6963 Sapphire encryption layer.
 *
 * In case you are only using Sapphire chain:
 *
 * ```typescript
 * import { createSapphireConfig } from '@oasisprotocol/sapphire-wagmi-v2';
 *
 * export const config = createSapphireConfig({
 *   sapphireConfig: {
 *     replaceProviders: true,
 *   }
 *   ...
 * });
 * ```
 *
 * In case your dApp is multichain, the below example will create duplicate connectors for Sapphire:
 *
 * ```typescript
 * import { createSapphireConfig } from '@oasisprotocol/sapphire-wagmi-v2';
 *
 * export const config = createSapphireConfig({
 *   sapphireConfig: {
 *     replaceProviders: false,
 *     // Define which providers you want to wrap via RDNS
 *     wrappedProvidersFilter: (rdns) => ['io.metamask'].includes(rdns)
 *   }
 *   ...
 * });
 * ```
 *
 * @param {CreateConfigParameters<chains, transports, connectorFns> & CreateSapphireConfigParameters} parameters - Extended wagmi parameters,
 * with sapphireConfig
 * @return {Config<chains, transports, connectorFns>} Wagmi config
 */
export declare function createSapphireConfig<chains extends readonly [Chain, ...Chain[]], transports extends Record<chains[number]["id"], Transport>, connectorFns extends readonly CreateConnectorFn[]>(parameters: CreateConfigParameters<chains, transports, connectorFns> & CreateSapphireConfigParameters): Config<chains, transports, connectorFns>;
//# sourceMappingURL=index.d.ts.map