import { EventsRecord, NoConfig } from "@proto-kit/common"; import { RuntimeModule } from "@proto-kit/module"; import { StateMap } from "@proto-kit/protocol"; import { Field, PublicKey } from "o1js"; import { UInt64 } from "../math/UInt64"; export declare const errors: { senderNotFrom: () => string; fromBalanceInsufficient: () => string; }; export declare class TokenId extends Field { } declare const BalancesKey_base: (new (value: { tokenId: TokenId; address: PublicKey; }) => { tokenId: TokenId; address: PublicKey; }) & { _isStruct: true; } & Omit, "fromFields"> & { fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => { tokenId: TokenId; address: PublicKey; }; } & { fromValue: (value: { tokenId: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field | TokenId; address: PublicKey | { x: bigint | import("o1js/dist/node/lib/provable/field").Field; isOdd: boolean | import("o1js/dist/node/lib/provable/bool").Bool; }; }) => { tokenId: TokenId; address: PublicKey; }; toInput: (x: { tokenId: TokenId; address: PublicKey; }) => { fields?: import("o1js/dist/node/lib/provable/field").Field[] | undefined; packed?: [import("o1js/dist/node/lib/provable/field").Field, number][] | undefined; }; toJSON: (x: { tokenId: TokenId; address: PublicKey; }) => { tokenId: string; address: string; }; fromJSON: (x: { tokenId: string; address: string; }) => { tokenId: TokenId; address: PublicKey; }; empty: () => { tokenId: TokenId; address: PublicKey; }; }; export declare class BalancesKey extends BalancesKey_base { static from(tokenId: TokenId, address: PublicKey): BalancesKey; } export declare class Balance extends UInt64 { } export interface BalancesEvents extends EventsRecord { setBalance: [BalancesKey, Balance]; } export type MinimalBalances = { balances: StateMap; transfer: (tokenId: TokenId, from: PublicKey, to: PublicKey, amount: Balance) => void; }; export declare class Balances extends RuntimeModule implements MinimalBalances { balances: StateMap; getBalance(tokenId: TokenId, address: PublicKey): Promise; setBalance(tokenId: TokenId, address: PublicKey, amount: Balance): Promise; transfer(tokenId: TokenId, from: PublicKey, to: PublicKey, amount: Balance): Promise; mint(tokenId: TokenId, address: PublicKey, amount: Balance): Promise; burn(tokenId: TokenId, address: PublicKey, amount: Balance): Promise; transferSigned(tokenId: TokenId, from: PublicKey, to: PublicKey, amount: Balance): Promise; } export {}; //# sourceMappingURL=Balances.d.ts.map