import { TypedEventTarget } from 'iso-web/event-target'; import type { Hex } from 'ox/Hex'; import { type Chain, type Client, type Transport, type TransportConfig, type WalletClient } from 'viem'; import { type Account } from 'viem/accounts'; import type { SessionKeyPermissions } from './permissions.ts'; export interface Secp256k1SessionKeyProps { privateKey: Hex; expiresAt: number | undefined; permissions: SessionKeyPermissions[]; } export interface Secp256k1SessionKeyCreateOptions { privateKey?: Hex; expiresAt?: number; permissions?: SessionKeyPermissions[]; } export declare class Secp256k1Key extends TypedEventTarget implements SessionKey { private privateKey; permissions: SessionKeyPermissions[]; expiresAt: number | undefined; type: 'secp256k1'; account: Account; private isConnecting; private isConnected; private connectPromise; constructor(props: Secp256k1SessionKeyProps); static create(options?: Secp256k1SessionKeyCreateOptions): Secp256k1Key; get connecting(): boolean; get connected(): boolean; connect(client: Client): Promise; disconnect(): Promise; refresh(client: Client): Promise<`0x${string}`>; isValid(client: Client, permission: SessionKeyPermissions): Promise; client(chain: Chain, transportConfig?: TransportConfig): WalletClient; } export type WalletEvents = { connected: CustomEvent; disconnected: CustomEvent; connectHash: CustomEvent; error: CustomEvent; }; export interface SessionKey extends TypedEventTarget { readonly connecting: boolean; readonly connected: boolean; readonly account: Account | undefined; readonly type: 'secp256k1'; connect: (client: Client) => Promise; disconnect: () => Promise; refresh: (client: Client) => Promise; isValid: (client: Client, permission: SessionKeyPermissions) => Promise; client: (chain: Chain, transportConfig?: TransportConfig) => WalletClient; } //# sourceMappingURL=secp256k1.d.ts.map