import * as ethers from 'ethers'; import { TransactionResponse, ethers as ethers$1, ContractRunner } from 'ethers'; type Positions = { readonly property: string; readonly amount: string; readonly price: string; readonly cumulativeReward: string; readonly pendingReward: string; }; type Rewards = { readonly entireReward: string; readonly cumulativeReward: string; readonly withdrawableReward: string; }; type TokenURI = { readonly name: string; readonly description: string; readonly image: string; readonly attributes: readonly [ { readonly trait_type: 'Destination'; readonly value: string; }, { readonly trait_type: 'Locked Amount'; readonly display_type: 'number'; readonly value: number; }, { readonly trait_type: 'Payload'; readonly value: string; } ]; }; type TokenURISimProps = { readonly tokenId?: number; readonly owner?: string; readonly positions?: { readonly property?: string; readonly amount?: string; readonly price?: string; readonly cumulativeReward?: string; readonly pendingReward?: string; }; readonly rewards?: { readonly entireReward?: string; readonly cumulativeReward?: string; readonly withdrawableReward?: string; }; readonly payload?: string | Uint8Array; }; type STokensContract = { readonly positions: (tokenId: number) => Promise; readonly isFreezed: (tokenId: number) => Promise; readonly freezeTokenURI: (tokenId: number, overrides?: FallbackableOverrides) => Promise; readonly setTokenURIImage: (tokenId: number, data: string, overrides?: FallbackableOverrides) => Promise; readonly setSTokenRoyaltyForProperty: (propertyAddress: string, royalty: number, overrides?: FallbackableOverrides) => Promise; readonly royaltyOf: (propertyAddress: string) => Promise; readonly setTokenURIDescriptor: (propertyAddress: string, descriptorAddress: string, payloads?: ReadonlyArray, overrides?: FallbackableOverrides) => Promise; readonly ownerOf: (tokenId: number) => Promise; readonly rewards: (tokenId: number) => Promise; readonly tokenURI: (tokenId: number) => Promise; readonly tokenURISim: (props?: TokenURISimProps) => Promise; readonly positionsOfProperty: (propertyAddress: string) => Promise; readonly positionsOfOwner: (accountAddress: string) => Promise; readonly contract: () => ethers$1.Contract; readonly payloadOf: (tokenId: number) => Promise; readonly descriptorOf: (propertyAddress: string) => Promise; readonly descriptorOfPropertyByPayload: (propertyAddress: string, payload: string | Uint8Array) => Promise; }; declare const createSTokensContract: (provider: ContractRunner) => (address: string) => STokensContract; type Overrides = { readonly gasLimit?: number; readonly from?: string; readonly value?: string; }; type FallbackableOverrides = { readonly overrides?: Overrides; readonly fallback?: Overrides; }; type MarketContract = { readonly schema: () => Promise; readonly vote: (propertyAddress: string, agree: boolean, overrides?: FallbackableOverrides) => Promise; readonly authenticate: (address: string, args: readonly string[], options: { readonly metricsFactoryAddress: string; }, overrides?: FallbackableOverrides) => Promise; readonly behavior: () => Promise; readonly name: () => Promise; readonly getAuthenticatedProperties: () => Promise; readonly contract: () => ethers$1.Contract; }; declare const createMarketContract: (provider: ContractRunner) => (address: string) => MarketContract; type CreateMarketBehaviorContract = { readonly getId: (metricsAddress: string) => Promise; readonly getMetrics: (id: string) => Promise; readonly contract: () => ethers$1.Contract; }; declare const createMarketBehaviorContract: (provider: ContractRunner) => (address: string) => CreateMarketBehaviorContract; type PropertyBalance = Readonly<{ readonly account: string; readonly balance: string; }>; type PropertyContract = { readonly totalSupply: () => Promise; readonly balanceOf: (address: string) => Promise; readonly transfer: (to: string, value: string, overrides?: FallbackableOverrides) => Promise; readonly allowance: (from: string, to: string) => Promise; readonly approve: (to: string, value: string, overrides?: FallbackableOverrides) => Promise; readonly transferFrom: (from: string, to: string, value: string, overrides?: FallbackableOverrides) => Promise; readonly name: () => Promise; readonly symbol: () => Promise; readonly decimals: () => Promise; readonly author: () => Promise; readonly changeName: (nextName: string, overrides?: FallbackableOverrides) => Promise; readonly changeSymbol: (nextSymbol: string, overrides?: FallbackableOverrides) => Promise; readonly getBalances: () => Promise; readonly contract: () => ethers$1.Contract; }; type CreatePropertyContract = (provider: ContractRunner) => (address: string) => PropertyContract; declare const createPropertyContract: CreatePropertyContract; type WaitForEventOptions = { readonly metricsFactoryAddress: string; }; type PropertyFactoryContract = { readonly create: (name: string, symbol: string, author: string, overrides?: FallbackableOverrides) => Promise; readonly createAndAuthenticate: (name: string, symbol: string, marketAddress: string, args: readonly string[], options: WaitForEventOptions, overrides?: FallbackableOverrides) => Promise<{ readonly property: string; readonly transaction: TransactionResponse; readonly waitForAuthentication: () => Promise; }>; readonly getPropertiesOfAuthor: (author: string) => Promise; readonly contract: () => ethers$1.Contract; }; declare const createPropertyFactoryContract: (provider: ContractRunner) => (address: string) => PropertyFactoryContract; type LockedupProperty = Readonly<{ readonly property: string; readonly value: string; }>; type LockupContract = { readonly withdrawByPosition: (positionTokenId: string, amount: string, overrides?: FallbackableOverrides) => Promise; readonly calculateWithdrawableInterestAmountByPosition: (positionTokenId: string) => Promise; readonly calculateCumulativeHoldersRewardAmount: (propertyAddress: string) => Promise; readonly calculateCumulativeRewardPrices: () => Promise; readonly calculateRewardAmount: (propertyAddress: string) => Promise; readonly cap: () => Promise; readonly depositToProperty: (propertyAddress: string, amount: string, payload?: string | Uint8Array, overrides?: FallbackableOverrides) => Promise; readonly depositToPosition: (positionTokenId: string, amount: string, overrides?: FallbackableOverrides) => Promise; readonly totalLocked: () => Promise; readonly totalLockedForProperty: (address: string) => Promise; readonly getLockedupProperties: () => Promise; readonly contract: () => ethers$1.Contract; }; declare const createLockupContract: (provider: ContractRunner) => (address: string) => LockupContract; type Erc20Contract = { readonly totalSupply: () => Promise; readonly balanceOf: (address: string) => Promise; readonly transfer: (to: string, value: string, overrides?: FallbackableOverrides) => Promise; readonly allowance: (from: string, to: string) => Promise; readonly approve: (to: string, value: string, overrides?: FallbackableOverrides) => Promise; readonly transferFrom: (from: string, to: string, value: string, overrides?: FallbackableOverrides) => Promise; readonly name: () => Promise; readonly symbol: () => Promise; readonly decimals: () => Promise; }; declare const createErc20Contract: (provider: ContractRunner) => (address: string) => Erc20Contract; declare const createDevContract: (provider: ethers.ContractRunner) => (address: string) => Erc20Contract; type DevContract = Erc20Contract; type HolderRewards = { readonly amount: string; readonly price: string; readonly cap: string; readonly allReward: string; }; type TransferHistory = { readonly to: string; readonly from: string; readonly amount: string; readonly preBalanceOfRecipient: string; readonly preBalanceOfSender: string; readonly filled: boolean; readonly blockNumber: string; }; type WithdrawContract = { readonly withdraw: (propertyAddress: string, overrides?: FallbackableOverrides) => Promise; readonly calculateRewardAmount: (propertyAddress: string, accountAddress: string) => Promise; readonly transferHistory: (propertyAddress: string, index: number | string) => Promise; readonly transferHistoryLength: (propertyAddress: string) => Promise; readonly transferHistoryLengthOfRecipient: (propertyAddress: string, recipient: string) => Promise; readonly transferHistoryLengthOfSender: (propertyAddress: string, sender: string) => Promise; readonly transferHistoryOfRecipientByIndex: (propertyAddress: string, recipient: string, index: number | string) => Promise; readonly transferHistoryOfSenderByIndex: (propertyAddress: string, sender: string, index: number | string) => Promise; readonly contract: () => ethers$1.Contract; }; declare const createWithdrawContract: (provider: ContractRunner) => (address: string) => WithdrawContract; type RegistryContract = { readonly registries: (key: string) => Promise; readonly contract: () => ethers$1.Contract; }; type CreateRegistryContract = (provider: ContractRunner) => (address: string) => RegistryContract; declare const createRegistryContract: CreateRegistryContract; type PolicyContract = { readonly holdersShare: (amount: string, lockups: string) => Promise; readonly rewards: (lockups: string, assets: string) => Promise; readonly authenticationFee: (assets: string, propertyAssets: string) => Promise; readonly marketVotingSeconds: () => Promise; readonly policyVotingSeconds: () => Promise; readonly shareOfTreasury: (supply: string) => Promise; readonly contract: () => ethers$1.Contract; }; declare const createPolicyContract: (provider: ContractRunner) => (address: string) => PolicyContract; type CreateMetricsContract = { readonly property: () => Promise; readonly market: () => Promise; readonly contract: () => ethers$1.Contract; }; declare const createMetricsContract: (provider: ContractRunner) => (address: string) => CreateMetricsContract; type PolicyFactoryContract = { readonly create: (newPolicyAddress: string, overrides?: FallbackableOverrides) => Promise; readonly forceAttach: (policy: string, overrides?: FallbackableOverrides) => Promise; readonly contract: () => ethers$1.Contract; }; type CreatePolicyFactoryContract = (provider: ContractRunner) => (address: string) => PolicyFactoryContract; declare const createPolicyFactoryContract: CreatePolicyFactoryContract; type MarketFactoryContract = { readonly create: (marketBehaviorAddress: string) => Promise; readonly getEnabledMarkets: () => Promise; readonly contract: () => ethers$1.Contract; }; declare const createMarketFactoryContract: (provider: ContractRunner) => (address: string) => MarketFactoryContract; type MetricsFactoryContract = { readonly authenticatedPropertiesCount: () => Promise; readonly metricsCount: () => Promise; readonly metricsOfProperty: (propertyAddress: string) => Promise; readonly contract: () => ethers$1.Contract; }; declare const createMetricsFactoryContract: (provider: ContractRunner) => (address: string) => MetricsFactoryContract; type DevkitContract = { readonly market: ReturnType; readonly marketBehavior: ReturnType; readonly marketFactory: ReturnType; readonly property: ReturnType; readonly propertyFactory: ReturnType; readonly lockup: ReturnType; readonly withdraw: ReturnType; readonly dev: ReturnType; readonly registry: ReturnType; readonly policy: ReturnType; readonly metrics: ReturnType; readonly metricsFactory: ReturnType; readonly policyFactory: ReturnType; readonly sTokens: ReturnType; }; type ContractFactory = (ethersProvider: ContractRunner) => DevkitContract; type CreateDevkitContract = (provider: ContractRunner) => DevkitContract; declare const createDevkitContract: CreateDevkitContract; declare const contractFactory: ContractFactory; type CreateDetectSTokens = (sTokens: STokensContract) => (propertyAddress: string, accountAddress: string) => Promise; declare const createDetectSTokens: CreateDetectSTokens; type DevkitClient = { readonly createDetectSTokens: typeof createDetectSTokens; }; declare const client: DevkitClient; declare const devAbi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; declare const erc20Abi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; declare const lockupAbi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; outputs?: undefined; stateMutability?: undefined; constant?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; constant: boolean; anonymous?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; constant?: undefined; } | { inputs: never[]; name: string; outputs: { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; constant: boolean; anonymous?: undefined; })[]; declare const marketAbi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; name?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; })[]; declare const marketBehaviorAbi: { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; }[]; declare const marketFactoryAbi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; outputs?: undefined; stateMutability?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; declare const metricsAbi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; } | { constant: boolean; inputs: never[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; })[]; declare const metricsFactoryAbi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; outputs?: undefined; stateMutability?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; declare const policyAbi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; declare const policyFactoryAbi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: never[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: never[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; declare const propertyAbi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: never[]; name: string; outputs: { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; declare const propertyFactoryAbi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; outputs?: undefined; stateMutability?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; declare const addressRegistryAbi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; outputs?: undefined; stateMutability?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; declare const sTokensAbi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; outputs?: undefined; stateMutability?: undefined; constant?: undefined; } | { inputs: ({ internalType: string; name: string; type: string; components?: undefined; } | { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; })[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; constant: boolean; anonymous?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; constant?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; constant: boolean; anonymous?: undefined; })[]; declare const withdrawAbi: ({ inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; constant: boolean; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: never[]; stateMutability: string; type: string; constant?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; constant: boolean; })[]; export { type ContractFactory, type CreateDevkitContract, type CreatePropertyContract, type CreateRegistryContract, type DevContract, type DevkitClient, type DevkitContract, type Erc20Contract, type HolderRewards, type LockupContract, type MarketContract, type MarketFactoryContract, type MetricsFactoryContract, type PolicyContract, type PolicyFactoryContract, type Positions, type PropertyContract, type PropertyFactoryContract, type RegistryContract, type STokensContract, type TransferHistory, type WithdrawContract, addressRegistryAbi, client, contractFactory, createDetectSTokens, createDevContract, createDevkitContract, createErc20Contract, createLockupContract, createMarketBehaviorContract, createMarketContract, createMarketFactoryContract, createMetricsContract, createMetricsFactoryContract, createPolicyContract, createPolicyFactoryContract, createPropertyContract, createPropertyFactoryContract, createRegistryContract, createSTokensContract, createWithdrawContract, devAbi, erc20Abi, lockupAbi, marketAbi, marketBehaviorAbi, marketFactoryAbi, metricsAbi, metricsFactoryAbi, policyAbi, policyFactoryAbi, propertyAbi, propertyFactoryAbi, sTokensAbi, withdrawAbi };