import { BigNumberish, RpcProvider, TypedContractV2 } from "starknet"; import { CipherBalance } from "./types.js"; import { PubKey, TongoAddress } from "./types.js"; import { AEBalance } from "./ae_balance.js"; import { tongoAbi } from "./tongo.abi.js"; export declare const AuditorEvent: { readonly BalanceDeclared: "balanceDeclared"; readonly TransferOutDeclared: "transferOutDeclared"; readonly TransferInDeclared: "transferInDeclared"; }; export type AuditorEvent = typeof AuditorEvent[keyof typeof AuditorEvent]; interface AuditorBaseEvent { type: AuditorEvent; tx_hash: string; block_number: number; } interface AuditorBalanceDeclared extends AuditorBaseEvent { type: typeof AuditorEvent.BalanceDeclared; nonce: bigint; user: TongoAddress; amount: bigint; } interface AuditorTransferOutDeclared extends AuditorBaseEvent { type: typeof AuditorEvent.TransferOutDeclared; sender_nonce: bigint; user: TongoAddress; amount: bigint; to: TongoAddress; } interface AuditorTransferInDeclared extends AuditorBaseEvent { type: typeof AuditorEvent.TransferInDeclared; sender_nonce: bigint; user: TongoAddress; amount: bigint; from: TongoAddress; } type AuditorEvents = AuditorBalanceDeclared | AuditorTransferOutDeclared | AuditorTransferInDeclared; export declare class Auditor { publicKey: PubKey; pk: bigint; provider: RpcProvider; Tongo: TypedContractV2; constructor(pk: BigNumberish | Uint8Array, contractAddress: string, provider: RpcProvider); decryptCipherBalance({ L, R }: CipherBalance, hint?: bigint): bigint; deriveSymmetricKeyForPubKey(nonce: bigint, other: PubKey): Promise>; decryptAEHintForPubKey(aeHint: AEBalance, accountNonce: bigint, other: PubKey): Promise; getUserBalance(initialBlock: number, otherPubKey: PubKey): Promise; getUserTransferOut(initialBlock: number, otherPubKey: PubKey): Promise; getUserTransferIn(initialBlock: number, otherPubKey: PubKey): Promise; getUserHistory(initialBlock: number, user: PubKey): Promise; } export {};