import type { Hex } from 'viem'; import type { LazyCallInput, Session } from '../config/account.js'; /** * Enable smart sessions * @returns Calls to enable smart sessions */ declare function enable(): LazyCallInput; /** * Disable smart sessions * @returns Calls to disable smart sessions */ declare function disable(): LazyCallInput; /** * Enable a smart session * * The `session` must be a resolved `Session` (the return value of * `toSession(...)`). Re-resolving it here would drop the explicit * `permissions` — a `Session` only carries the derived `actions`, not the * original `SessionDefinition.permissions` — which makes the on-chain digest * computed by `SmartSessionLens.getAndVerifyDigest` diverge from the one * signed in `getSessionDetails`, causing the emissary to reject the enable. * * @param session resolved session to enable * @returns Calls to enable the smart session */ declare function enableSession(session: Session, enableSessionSignature: Hex, hashesAndChainIds: { chainId: bigint; sessionDigest: Hex; }[], sessionToEnableIndex: number): LazyCallInput; /** * Disable a smart session * * Removes a single session from the smart-session emissary via `removeConfig`. * The account executes the call itself, so the emissary skips the disable * user-signature — the user authorizes it by signing the outer transaction as * usual (no separate, blind session-digest signature). The `session` must be a * resolved `Session` (the return value of `toSession(...)`) on the chain where * the session is being disabled. * * @param session resolved session to disable * @param expires optional deadline after which this disable call is no longer * valid; must be in the future. Omit for no expiry. * @returns Calls to disable the smart session */ declare function disableSession(session: Session, expires?: Date): LazyCallInput; export { disable, disableSession, enable, enableSession }; //# sourceMappingURL=smart-sessions.d.ts.map