import { Big } from "big.js"; import { Contract } from "ethers"; import { ContractName } from "../../contracts"; import { IERC20Metadata } from "../../contracts/type"; import { Channel, ChannelEventSource } from "../../internal"; import { PerpetualProtocol } from "../PerpetualProtocol"; declare type CollateralEventName = "Approval" | "Transfer"; export declare class NonSettlementCollateralToken extends Channel { private readonly _perp; private _cache; private _contract; private _contractReader; private _priceFeedContract; private _metadataInfo?; constructor(_perp: PerpetualProtocol, contract: IERC20Metadata, priceFeedContract: Contract); get contract(): IERC20Metadata; get priceFeedContract(): Contract; get address(): string; symbol({ cache }?: { cache?: boolean | undefined; }): Promise; name({ cache }?: { cache?: boolean | undefined; }): Promise; decimals({ cache }?: { cache?: boolean | undefined; }): Promise; weight({ cache }?: { cache?: boolean | undefined; }): Promise; cap({ cache }?: { cache?: boolean | undefined; }): Promise; price({ cache }?: { cache?: boolean | undefined; }): Promise; balanceOf(account: string): Promise; allowance(account: string, spender: string): Promise; approve(account: string, spender: string, amount?: Big): Promise<{ transaction: import("ethers").ContractTransaction; metadata: { contractName: ContractName; contractFunctionName: keyof Contract; args: unknown[]; txPayload: { from?: string | undefined; to?: string | undefined; inputData?: string | undefined; } | { from: string; to: string; value: import("ethers").BigNumber | undefined; inputData: string; }; }; gasLimit: string; }>; protected _getEventSourceMap(): { Approval: ChannelEventSource; Transfer: ChannelEventSource; }; private _fetch; } export {};