import { DeployArgs, PublicKey, State, UInt64, SmartContract, Bool, Field } from "o1js"; import { Whitelist } from "@silvana-one/storage"; export interface FungibleTokenBidContractDeployProps extends Exclude { /** The whitelist. */ whitelist: Whitelist; } declare const BidEvent_base: (new (value: { amount: UInt64; address: PublicKey; }) => { amount: UInt64; address: PublicKey; }) & { _isStruct: true; } & Omit, "fromFields"> & { fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => { amount: UInt64; address: PublicKey; }; } & { fromValue: (value: { amount: number | bigint | UInt64; address: PublicKey | { x: Field | bigint; isOdd: Bool | boolean; }; }) => { amount: UInt64; address: PublicKey; }; toInput: (x: { amount: UInt64; address: PublicKey; }) => { fields?: Field[] | undefined; packed?: [Field, number][] | undefined; }; toJSON: (x: { amount: UInt64; address: PublicKey; }) => { amount: string; address: string; }; fromJSON: (x: { amount: string; address: string; }) => { amount: UInt64; address: PublicKey; }; empty: () => { amount: UInt64; address: PublicKey; }; }; export declare class BidEvent extends BidEvent_base { } export declare class FungibleTokenBidContract extends SmartContract { price: State; buyer: State; token: State; whitelist: State; deploy(args: FungibleTokenBidContractDeployProps): Promise; events: { bid: typeof BidEvent; withdraw: typeof BidEvent; sell: typeof BidEvent; updateWhitelist: typeof Whitelist; }; initialize(token: PublicKey, amount: UInt64, price: UInt64): Promise; bid(amount: UInt64, price: UInt64): Promise; withdraw(amountInMina: UInt64): Promise; sell(amount: UInt64): Promise; updateWhitelist(whitelist: Whitelist): Promise; } export {};