import { TypedData } from '@starknet-io/types-js';
import { Call, merkle } from 'starknet';
import { ArgentServiceSignatureResponse, OffChainSession, OnChainSession, SessionKey } from './session.types';

export declare const buildMerkleTree: (sessionRequest: OffChainSession) => merkle.MerkleTree;
export declare const compileSessionHelper: (sessionRequest: OffChainSession) => OnChainSession;
export declare const getSessionProofs: (sessionRequest: OffChainSession, calls: Call[]) => string[][];
export declare const compileSessionTokenHelper: (session: OnChainSession, sessionRequest: OffChainSession, sessionKey: SessionKey, calls: Call[], sessionSignature: bigint[], session_authorization: string[], guardianSignature: ArgentServiceSignatureResponse, cache_authorization: boolean) => Promise<{
    session: OnChainSession;
    cache_authorization: boolean;
    session_authorization: string[];
    sessionSignature: import('starknet').CairoCustomEnum;
    guardianSignature: import('starknet').CairoCustomEnum;
    proofs: string[][];
}>;
export declare const signTxAndSession: (transactionHash: string, accountAddress: string, sessionTypedData: TypedData, cacheAuthorisation: boolean, sessionKey: SessionKey) => bigint[];
