import { ContractToMapping, KernelConfig, _kernelConfig } from "./core/types/dimo.js";
import { Chain, PublicClient, Transport } from "viem";
import { KernelAccountClient, KernelSmartAccount } from "@zerodev/sdk";
import { EntryPoint } from "permissionless/types";
import { BundlerClient, GetUserOperationReceiptReturnType } from "permissionless";
import { BurnVehicle, ClaimAftermarketdevice, MintVehicleWithDeviceDefinition, PairAftermarketDevice, SendDIMOTokens, SetVehiclePermissions, SetVehiclePermissionsBulk, TransferVehicleAndAftermarketDeviceIDs, UnPairAftermarketDevice } from "./core/types/args.js";
import { TypeHashResponse } from "./core/types/responses.js";
import { TurnkeyClient } from "@turnkey/http";
export declare class KernelSigner {
    config: _kernelConfig;
    publicClient: PublicClient;
    bundlerClient: BundlerClient<EntryPoint, Chain | undefined>;
    kernelClient: KernelAccountClient<EntryPoint, Transport, Chain, KernelSmartAccount<EntryPoint, Transport, Chain>>;
    sessionClient: KernelAccountClient<EntryPoint, Transport, Chain, KernelSmartAccount<EntryPoint, Transport, Chain>> | undefined;
    contractMapping: ContractToMapping;
    chain: Chain;
    kernelAddress: `0x${string}` | undefined;
    turnkeyClient: TurnkeyClient | undefined;
    turnkeyPasskeyClient: TurnkeyClient | undefined;
    _init: boolean;
    private _subOrganizationId;
    private _walletAddress;
    private _walletSession;
    expire: number;
    constructor(config: KernelConfig);
    passkeyInit(subOrganizationId: string, walletAddress: `0x${string}`, stamper: any): Promise<void>;
    openSessionWithPasskey(): Promise<{
        active: boolean;
        expires: number;
    }>;
    walletSessionActive(): boolean;
    sessionInfos(): {
        active: boolean;
        expires: number;
    };
    privateKeyInit(privateKey: `0x${string}`): Promise<void>;
    mintVehicleWithDeviceDefinition(args: MintVehicleWithDeviceDefinition | MintVehicleWithDeviceDefinition[], waitForReceipt?: boolean): Promise<GetUserOperationReceiptReturnType & {
        userOperationHash: string;
    }>;
    setVehiclePermissions(args: SetVehiclePermissions | SetVehiclePermissions[]): Promise<GetUserOperationReceiptReturnType>;
    setVehiclePermissionsBulk(args: SetVehiclePermissionsBulk): Promise<GetUserOperationReceiptReturnType>;
    sendDIMOTokens(args: SendDIMOTokens): Promise<GetUserOperationReceiptReturnType>;
    claimAftermarketDeviceTypeHash(aftermarketDeviceNode: bigint, owner: `0x${string}`): TypeHashResponse;
    claimAftermarketDevice(args: ClaimAftermarketdevice): Promise<GetUserOperationReceiptReturnType>;
    pairAftermarketDevice(args: PairAftermarketDevice): Promise<GetUserOperationReceiptReturnType>;
    claimAndPairAftermarketDevice(args: ClaimAftermarketdevice & PairAftermarketDevice): Promise<GetUserOperationReceiptReturnType>;
    burnVehicle(args: BurnVehicle | BurnVehicle[]): Promise<GetUserOperationReceiptReturnType>;
    transferVehicleAndAftermarketDevices(args: TransferVehicleAndAftermarketDeviceIDs): Promise<GetUserOperationReceiptReturnType>;
    unpairAftermarketDevice(args: UnPairAftermarketDevice): Promise<GetUserOperationReceiptReturnType>;
    signTypedData(arg: any): Promise<any>;
}
