declare module '@credenza-web3/contracts-lib/CredenzaContracts' { import { ethers } from 'ethers'; import type { TCredenzaContractOpts, TFetchedContract } from '@src/CredenzaContracts.types'; export const fetchCredenzaContractJson: (opts: Pick) => Promise; export const getCredenzaContract: (opts: TCredenzaContractOpts) => Promise; export const listContracts: (cdnProvider?: TCredenzaContractOpts["cdn"]) => Promise; } declare module '@credenza-web3/contracts-lib/CredenzaContracts.enums' { export enum CDNProviders { UNPKG = "UNPKG", JSDELIVR = "JSDELIVR" } } declare module '@credenza-web3/contracts-lib/CredenzaContracts.types' { import { ContractInterface, Provider, Signer, Wallet } from 'ethers'; import { CDNProviders } from '@src/CredenzaContracts.enums'; type RequireOnlyOne = Pick> & { [K in Keys]-?: Required> & Partial, undefined>>; }[Keys]; type TProviderOrSigner = { provider?: Provider; signer?: Signer; wallet?: Wallet | Provider | Signer; }; type TCredenzaContractNameOrAbi = { name?: string; abi?: any; }; export type TCredenzaContractOpts = { address: string; cdn?: CDNProviders.JSDELIVR | CDNProviders.UNPKG; cache?: boolean; } & RequireOnlyOne & RequireOnlyOne; export type TFetchedContract = { abi: ContractInterface; bytecode: string; }; export {}; } declare module '@credenza-web3/contracts-lib/index' { import { getCredenzaContract, fetchCredenzaContractJson, listContracts } from '@src/CredenzaContracts'; import { CDNProviders } from '@src/CredenzaContracts.enums'; export { listContracts, getCredenzaContract, fetchCredenzaContractJson, CDNProviders }; } declare module '@credenza-web3/contracts-lib' { import main = require('@credenza-web3/contracts-lib/index'); export = main; }