import { Context, Effect, Layer } from "effect";
import type { Address } from "viem";
import type { UserRejectedError } from "../core/index.js";
import type { AddChainParams, ChainSwitchError, WalletProvider, WatchAssetParams } from "../wallet/index.js";
import { AccountNotConnectedError, AddChainError, WalletConnectionError, WalletProviderRef, WatchAssetError } from "../wallet/index.js";
export type WalletLifecycleShape = {
readonly connect: () => Effect.Effect
;
readonly disconnect: () => Effect.Effect;
readonly isConnected: Effect.Effect;
readonly switchChain: (chainId: number) => Effect.Effect;
readonly addChain: (chain: AddChainParams) => Effect.Effect;
readonly getChainId: () => Effect.Effect;
readonly watchAsset: (params: WatchAssetParams) => Effect.Effect;
};
declare const WalletLifecycle_base: Context.TagClass;
export declare class WalletLifecycle extends WalletLifecycle_base {
}
export declare function makeWalletLifecycleLive(provider: WalletProvider): Layer.Layer;
export declare const WalletLifecycleFromProviderRefLive: Layer.Layer;
export declare const WalletLifecycleLive: Layer.Layer;
export {};
//# sourceMappingURL=lifecycle.d.ts.map