import { StorageDescriptor, PlainDescriptor, TxDescriptor, RuntimeDescriptor, Enum, ApisFromDef, QueryFromPalletsDef, TxFromPalletsDef, EventsFromPalletsDef, ErrorsFromPalletsDef, ConstFromPalletsDef, ViewFnsFromPalletsDef, SS58String, FixedSizeBinary, Binary, FixedSizeArray } from "polkadot-api";
import { I5sesotjlssv2d, Ifj0li5nn5unet, I4c0s5cioidn76, I8ikpj86u2na1q, Ibn3i0ad6beo5l, I1p5pqg6bllgtl, I9jd27rnpm8ttv, I4ojmnsk1dchql, Iesq88051ch8ht, Ic02kut0350gb0, I6ouflveob4eli, Ifn6q3equiq9qi, In7a38730s6qs, If15el53dd76v9, I9s0ave7t0vnrk, Ic6nglu2db2c36, Ie5fbn0f5capo3, Ia9ai1mp1viqjd, I4q47u65qosg7e, Icbccs0ug47ilf, I11jcgems8sdco, Ievca65alkkho9, I2qkf9i0e8mf1f, Ib0voua2mn0e9p, I2lu1qfhumniu5, Ii64qoo6q5lth, I2pi935s6uqbh, Ib9aiguc778ujf, If1007933akv96, Ifmc9boeeia623, Ibplkiqg5rvr3e, Icnmrtlo128skq, Icojqvn3afk41n, I4g15ko4u63fja, I8rbu1vdc38cnp, Ick2k1hvh0bm22, I4e4rvm2fqc561, XcmVersionedLocation, XcmVersionedXcm, Id2luorng6dtg7, I95g6i7ilua7lq, I35p85j063s0il, Id5qsstfl1fkb3, I3ii6nera7pkr8 } from "./common-types";
type AnonymousEnum<T extends {}> = T & {
    __anonymous: true;
};
type MyTuple<T> = [T, ...T[]];
type SeparateUndefined<T> = undefined extends T ? undefined | Exclude<T, undefined> : T;
type Anonymize<T> = SeparateUndefined<T extends FixedSizeBinary<infer L> ? number extends L ? Binary : FixedSizeBinary<L> : T extends string | number | bigint | boolean | void | undefined | null | symbol | Uint8Array | Enum<any> ? T : T extends AnonymousEnum<infer V> ? Enum<V> : T extends MyTuple<any> ? {
    [K in keyof T]: T[K];
} : T extends [] ? [] : T extends FixedSizeArray<infer L, infer T> ? number extends L ? Array<T> : FixedSizeArray<L, T> : {
    [K in keyof T & string]: T[K];
}>;
type IStorage = {
    System: {
        /**
         * The full account information for a particular account ID.
         */
        Account: StorageDescriptor<[Key: SS58String], Anonymize<I5sesotjlssv2d>, false, never>;
        /**
         * The current block number being processed. Set by `execute_block`.
         */
        Number: StorageDescriptor<[], number, false, never>;
    };
    AssetRegistry: {
        /**
         * Details of an asset.
         */
        Assets: StorageDescriptor<[Key: number], Anonymize<Ifj0li5nn5unet>, true, never>;
        /**
         * Native location of an asset.
         */
        AssetLocations: StorageDescriptor<[Key: number], Anonymize<I4c0s5cioidn76>, true, never>;
    };
    Omnipool: {
        /**
         * State of an asset in the omnipool
         */
        Assets: StorageDescriptor<[Key: number], Anonymize<I8ikpj86u2na1q>, true, never>;
        /**
         * Tradable state of hub asset.
         */
        HubAssetTradability: StorageDescriptor<[], number, false, never>;
    };
    DynamicFees: {
        /**
         * Stores last calculated fee of an asset and block number in which it was changed..
         * Stored as (Asset fee, Protocol fee, Block number)
         */
        AssetFee: StorageDescriptor<[Key: number], Anonymize<Ibn3i0ad6beo5l>, true, never>;
    };
    Stableswap: {
        /**
         * Existing pools
         */
        Pools: StorageDescriptor<[Key: number], Anonymize<I1p5pqg6bllgtl>, true, never>;
        /**
         * Tradability state of pool assets.
         */
        AssetTradability: StorageDescriptor<Anonymize<I9jd27rnpm8ttv>, number, false, never>;
    };
    Bonds: {
        /**
         * Registered bonds.
         * Maps bond ID -> (underlying asset ID, maturity)
         */
        Bonds: StorageDescriptor<[Key: number], Anonymize<I4ojmnsk1dchql>, true, never>;
    };
    LBP: {
        /**
         * Details of a pool.
         */
        PoolData: StorageDescriptor<[Key: SS58String], Anonymize<Iesq88051ch8ht>, true, never>;
    };
    XYK: {
        /**
         * Asset pair in a pool.
         */
        PoolAssets: StorageDescriptor<[Key: SS58String], Anonymize<I9jd27rnpm8ttv>, true, never>;
    };
    Tokens: {
        /**
         * The total issuance of a token type.
         */
        TotalIssuance: StorageDescriptor<[Key: number], bigint, false, never>;
        /**
         * The balance of a token type under an account.
         *
         * NOTE: If the total is ever zero, decrease account ref account.
         *
         * NOTE: This is only used in the case that this module is used to store
         * balances.
         */
        Accounts: StorageDescriptor<Anonymize<I6ouflveob4eli>, Anonymize<Ic02kut0350gb0>, false, never>;
    };
    ParachainSystem: {
        /**
         * The [`PersistedValidationData`] set for this block.
         * This value is expected to be set only once per block and it's never stored
         * in the trie.
         */
        ValidationData: StorageDescriptor<[], Anonymize<Ifn6q3equiq9qi>, true, never>;
    };
};
type ICalls = {
    Dispatcher: {
        /**
        
         */
        dispatch_as_treasury: TxDescriptor<Anonymize<I4q47u65qosg7e>>;
        /**
        
         */
        dispatch_as_aave_manager: TxDescriptor<Anonymize<I4q47u65qosg7e>>;
        /**
         * Sets the Aave manager account to be used as origin for dispatching calls.
         *
         * This doesn't actually changes any ACL in the pool.
         *
         * This is intented to be mainly used in testnet environments, where the manager account
         * can be different.
         */
        note_aave_manager: TxDescriptor<Anonymize<Icbccs0ug47ilf>>;
        /**
         * Dispatch a call with extra gas.
         *
         * This allows executing calls with additional weight (gas) limit.
         * The extra gas is not refunded, even if not used.
         */
        dispatch_with_extra_gas: TxDescriptor<Anonymize<I11jcgems8sdco>>;
    };
    Omnipool: {
        /**
         * Execute a swap of `asset_in` for `asset_out`.
         *
         * Price is determined by the Omnipool.
         *
         * Hub asset is traded separately.
         *
         * Asset's tradable states must contain SELL flag for asset_in and BUY flag for asset_out, otherwise `NotAllowed` error is returned.
         *
         * Parameters:
         * - `asset_in`: ID of asset sold to the pool
         * - `asset_out`: ID of asset bought from the pool
         * - `amount`: Amount of asset sold
         * - `min_buy_amount`: Minimum amount required to receive
         *
         * Emits `SellExecuted` event when successful. Deprecated.
         * Emits `pallet_broadcast::Swapped` event when successful.
         *
         */
        sell: TxDescriptor<Anonymize<Ievca65alkkho9>>;
        /**
         * Execute a swap of `asset_out` for `asset_in`.
         *
         * Price is determined by the Omnipool.
         *
         * Hub asset is traded separately.
         *
         * Asset's tradable states must contain SELL flag for asset_in and BUY flag for asset_out, otherwise `NotAllowed` error is returned.
         *
         * Parameters:
         * - `asset_in`: ID of asset sold to the pool
         * - `asset_out`: ID of asset bought from the pool
         * - `amount`: Amount of asset sold
         * - `max_sell_amount`: Maximum amount to be sold.
         *
         * Emits `BuyExecuted` event when successful. Deprecated.
         * Emits `pallet_broadcast::Swapped` event when successful.
         *
         */
        buy: TxDescriptor<Anonymize<I2qkf9i0e8mf1f>>;
    };
    Router: {
        /**
         * Executes a sell with a series of trades specified in the route.
         * The price for each trade is determined by the corresponding AMM.
         *
         * - `origin`: The executor of the trade
         * - `asset_in`: The identifier of the asset to sell
         * - `asset_out`: The identifier of the asset to receive
         * - `amount_in`: The amount of `asset_in` to sell
         * - `min_amount_out`: The minimum amount of `asset_out` to receive.
         * - `route`: Series of [`Trade<AssetId>`] to be executed. A [`Trade<AssetId>`] specifies the asset pair (`asset_in`, `asset_out`) and the AMM (`pool`) in which the trade is executed.
         * If not specified, than the on-chain route is used.
         * If no on-chain is present, then omnipool route is used as default
         *
         * Emits `RouteExecuted` when successful.
         */
        sell: TxDescriptor<Anonymize<Ib0voua2mn0e9p>>;
        /**
         * Executes a buy with a series of trades specified in the route.
         * The price for each trade is determined by the corresponding AMM.
         *
         * - `origin`: The executor of the trade
         * - `asset_in`: The identifier of the asset to be swapped to buy `asset_out`
         * - `asset_out`: The identifier of the asset to buy
         * - `amount_out`: The amount of `asset_out` to buy
         * - `max_amount_in`: The max amount of `asset_in` to spend on the buy.
         * - `route`: Series of [`Trade<AssetId>`] to be executed. A [`Trade<AssetId>`] specifies the asset pair (`asset_in`, `asset_out`) and the AMM (`pool`) in which the trade is executed.
         * If not specified, than the on-chain route is used.
         * If no on-chain is present, then omnipool route is used as default
         *
         * Emits `RouteExecuted` when successful.
         */
        buy: TxDescriptor<Anonymize<I2lu1qfhumniu5>>;
        /**
         * Executes a sell with a series of trades specified in the route.
         * It sells all reducible user balance of `asset_in`
         * The price for each trade is determined by the corresponding AMM.
         *
         * - `origin`: The executor of the trade
         * - `asset_in`: The identifier of the asset to sell
         * - `asset_out`: The identifier of the asset to receive
         * - `min_amount_out`: The minimum amount of `asset_out` to receive.
         * - `route`: Series of [`Trade<AssetId>`] to be executed. A [`Trade<AssetId>`] specifies the asset pair (`asset_in`, `asset_out`) and the AMM (`pool`) in which the trade is executed.
         * If not specified, than the on-chain route is used.
         * If no on-chain is present, then omnipool route is used as default
         *
         * Emits `RouteExecuted` when successful.
         *
         */
        sell_all: TxDescriptor<Anonymize<Ii64qoo6q5lth>>;
    };
    DCA: {
        /**
         * Creates a new DCA (Dollar-Cost Averaging) schedule and plans the next execution
         * for the specified block.
         *
         * If the block is not specified, the execution is planned for the next block.
         * If the given block is full, the execution will be planned in the subsequent block.
         *
         * Once the schedule is created, the specified `total_amount` will be reserved for DCA.
         * The reservation currency will be the `amount_in` currency of the order.
         *
         * Trades are executed as long as there is budget remaining
         * from the initial `total_amount` allocation, unless `total_amount` is 0, then trades
         * are executed until schedule is terminated.
         *
         * If a trade fails due to slippage limit or price stability errors, it will be retried.
         * If the number of retries reaches the maximum allowed,
         * the schedule will be terminated permanently.
         * In the case of a successful trade, the retry counter is reset.
         *
         * Parameters:
         * - `origin`: schedule owner
         * - `schedule`: schedule details
         * - `start_execution_block`: first possible execution block for the schedule
         *
         * Emits `Scheduled` and `ExecutionPlanned` event when successful.
         *
         */
        schedule: TxDescriptor<Anonymize<I2pi935s6uqbh>>;
        /**
         * Terminates a DCA schedule and remove it completely from the chain.
         *
         * This can be called by both schedule owner or the configured `T::TerminateOrigin`
         *
         * Parameters:
         * - `origin`: schedule owner
         * - `schedule_id`: schedule id
         * - `next_execution_block`: block number where the schedule is planned.
         *
         * Emits `Terminated` event when successful.
         *
         */
        terminate: TxDescriptor<Anonymize<Ib9aiguc778ujf>>;
    };
};
type IEvent = {
    Router: {
        /**
         * The route with trades has been successfully executed
         */
        Executed: PlainDescriptor<Anonymize<If1007933akv96>>;
    };
    EVM: {
        /**
         * Ethereum events from contracts.
         */
        Log: PlainDescriptor<Anonymize<Ifmc9boeeia623>>;
    };
};
type IError = {
    System: {
        /**
         * The name of specification does not match between the current runtime
         * and the new runtime.
         */
        InvalidSpecName: PlainDescriptor<undefined>;
        /**
         * The specification version is not allowed to decrease between the current runtime
         * and the new runtime.
         */
        SpecVersionNeedsToIncrease: PlainDescriptor<undefined>;
        /**
         * Failed to extract the runtime version from the new runtime.
         *
         * Either calling `Core_version` or decoding `RuntimeVersion` failed.
         */
        FailedToExtractRuntimeVersion: PlainDescriptor<undefined>;
        /**
         * Suicide called when the account has non-default composite data.
         */
        NonDefaultComposite: PlainDescriptor<undefined>;
        /**
         * There is a non-zero reference count preventing the account from being purged.
         */
        NonZeroRefCount: PlainDescriptor<undefined>;
        /**
         * The origin filter prevent the call to be dispatched.
         */
        CallFiltered: PlainDescriptor<undefined>;
        /**
         * A multi-block migration is ongoing and prevents the current code from being replaced.
         */
        MultiBlockMigrationsOngoing: PlainDescriptor<undefined>;
        /**
         * No upgrade authorized.
         */
        NothingAuthorized: PlainDescriptor<undefined>;
        /**
         * The submitted code is not authorized.
         */
        Unauthorized: PlainDescriptor<undefined>;
    };
    Balances: {
        /**
         * Vesting balance too high to send value.
         */
        VestingBalance: PlainDescriptor<undefined>;
        /**
         * Account liquidity restrictions prevent withdrawal.
         */
        LiquidityRestrictions: PlainDescriptor<undefined>;
        /**
         * Balance too low to send value.
         */
        InsufficientBalance: PlainDescriptor<undefined>;
        /**
         * Value too low to create account due to existential deposit.
         */
        ExistentialDeposit: PlainDescriptor<undefined>;
        /**
         * Transfer/payment would kill account.
         */
        Expendability: PlainDescriptor<undefined>;
        /**
         * A vesting schedule already exists for this account.
         */
        ExistingVestingSchedule: PlainDescriptor<undefined>;
        /**
         * Beneficiary account must pre-exist.
         */
        DeadAccount: PlainDescriptor<undefined>;
        /**
         * Number of named reserves exceed `MaxReserves`.
         */
        TooManyReserves: PlainDescriptor<undefined>;
        /**
         * Number of holds exceed `VariantCountOf<T::RuntimeHoldReason>`.
         */
        TooManyHolds: PlainDescriptor<undefined>;
        /**
         * Number of freezes exceed `MaxFreezes`.
         */
        TooManyFreezes: PlainDescriptor<undefined>;
        /**
         * The issuance cannot be modified since it is already deactivated.
         */
        IssuanceDeactivated: PlainDescriptor<undefined>;
        /**
         * The delta cannot be zero.
         */
        DeltaZero: PlainDescriptor<undefined>;
    };
    MultiTransactionPayment: {
        /**
         * Selected currency is not supported.
         */
        UnsupportedCurrency: PlainDescriptor<undefined>;
        /**
         * Account balance should be non-zero.
         */
        ZeroBalance: PlainDescriptor<undefined>;
        /**
         * Currency is already in the list of accepted currencies.
         */
        AlreadyAccepted: PlainDescriptor<undefined>;
        /**
         * It is not allowed to add Core Asset as accepted currency. Core asset is accepted by design.
         */
        CoreAssetNotAllowed: PlainDescriptor<undefined>;
        /**
         * Fallback price cannot be zero.
         */
        ZeroPrice: PlainDescriptor<undefined>;
        /**
         * Fallback price was not found.
         */
        FallbackPriceNotFound: PlainDescriptor<undefined>;
        /**
         * Math overflow
         */
        Overflow: PlainDescriptor<undefined>;
        /**
         * It is not allowed to change payment currency of an EVM account.
         */
        EvmAccountNotAllowed: PlainDescriptor<undefined>;
        /**
         * EVM permit expired.
         */
        EvmPermitExpired: PlainDescriptor<undefined>;
        /**
         * EVM permit is invalid.
         */
        EvmPermitInvalid: PlainDescriptor<undefined>;
        /**
         * EVM permit call failed.
         */
        EvmPermitCallExecutionError: PlainDescriptor<undefined>;
        /**
         * EVM permit call failed.
         */
        EvmPermitRunnerError: PlainDescriptor<undefined>;
    };
    Treasury: {
        /**
         * No proposal, bounty or spend at that index.
         */
        InvalidIndex: PlainDescriptor<undefined>;
        /**
         * Too many approvals in the queue.
         */
        TooManyApprovals: PlainDescriptor<undefined>;
        /**
         * The spend origin is valid but the amount it is allowed to spend is lower than the
         * amount to be spent.
         */
        InsufficientPermission: PlainDescriptor<undefined>;
        /**
         * Proposal has not been approved.
         */
        ProposalNotApproved: PlainDescriptor<undefined>;
        /**
         * The balance of the asset kind is not convertible to the balance of the native asset.
         */
        FailedToConvertBalance: PlainDescriptor<undefined>;
        /**
         * The spend has expired and cannot be claimed.
         */
        SpendExpired: PlainDescriptor<undefined>;
        /**
         * The spend is not yet eligible for payout.
         */
        EarlyPayout: PlainDescriptor<undefined>;
        /**
         * The payment has already been attempted.
         */
        AlreadyAttempted: PlainDescriptor<undefined>;
        /**
         * There was some issue with the mechanism of payment.
         */
        PayoutError: PlainDescriptor<undefined>;
        /**
         * The payout was not yet attempted/claimed.
         */
        NotAttempted: PlainDescriptor<undefined>;
        /**
         * The payment has neither failed nor succeeded yet.
         */
        Inconclusive: PlainDescriptor<undefined>;
    };
    Utility: {
        /**
         * Too many calls batched.
         */
        TooManyCalls: PlainDescriptor<undefined>;
    };
    Preimage: {
        /**
         * Preimage is too large to store on-chain.
         */
        TooBig: PlainDescriptor<undefined>;
        /**
         * Preimage has already been noted on-chain.
         */
        AlreadyNoted: PlainDescriptor<undefined>;
        /**
         * The user is not authorized to perform this action.
         */
        NotAuthorized: PlainDescriptor<undefined>;
        /**
         * The preimage cannot be removed since it has not yet been noted.
         */
        NotNoted: PlainDescriptor<undefined>;
        /**
         * A preimage may not be removed when there are outstanding requests.
         */
        Requested: PlainDescriptor<undefined>;
        /**
         * The preimage request cannot be removed since no outstanding requests exist.
         */
        NotRequested: PlainDescriptor<undefined>;
        /**
         * More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once.
         */
        TooMany: PlainDescriptor<undefined>;
        /**
         * Too few hashes were requested to be upgraded (i.e. zero).
         */
        TooFew: PlainDescriptor<undefined>;
    };
    Identity: {
        /**
         * Too many subs-accounts.
         */
        TooManySubAccounts: PlainDescriptor<undefined>;
        /**
         * Account isn't found.
         */
        NotFound: PlainDescriptor<undefined>;
        /**
         * Account isn't named.
         */
        NotNamed: PlainDescriptor<undefined>;
        /**
         * Empty index.
         */
        EmptyIndex: PlainDescriptor<undefined>;
        /**
         * Fee is changed.
         */
        FeeChanged: PlainDescriptor<undefined>;
        /**
         * No identity found.
         */
        NoIdentity: PlainDescriptor<undefined>;
        /**
         * Sticky judgement.
         */
        StickyJudgement: PlainDescriptor<undefined>;
        /**
         * Judgement given.
         */
        JudgementGiven: PlainDescriptor<undefined>;
        /**
         * Invalid judgement.
         */
        InvalidJudgement: PlainDescriptor<undefined>;
        /**
         * The index is invalid.
         */
        InvalidIndex: PlainDescriptor<undefined>;
        /**
         * The target is invalid.
         */
        InvalidTarget: PlainDescriptor<undefined>;
        /**
         * Maximum amount of registrars reached. Cannot add any more.
         */
        TooManyRegistrars: PlainDescriptor<undefined>;
        /**
         * Account ID is already named.
         */
        AlreadyClaimed: PlainDescriptor<undefined>;
        /**
         * Sender is not a sub-account.
         */
        NotSub: PlainDescriptor<undefined>;
        /**
         * Sub-account isn't owned by sender.
         */
        NotOwned: PlainDescriptor<undefined>;
        /**
         * The provided judgement was for a different identity.
         */
        JudgementForDifferentIdentity: PlainDescriptor<undefined>;
        /**
         * Error that occurs when there is an issue paying for judgement.
         */
        JudgementPaymentFailed: PlainDescriptor<undefined>;
        /**
         * The provided suffix is too long.
         */
        InvalidSuffix: PlainDescriptor<undefined>;
        /**
         * The sender does not have permission to issue a username.
         */
        NotUsernameAuthority: PlainDescriptor<undefined>;
        /**
         * The authority cannot allocate any more usernames.
         */
        NoAllocation: PlainDescriptor<undefined>;
        /**
         * The signature on a username was not valid.
         */
        InvalidSignature: PlainDescriptor<undefined>;
        /**
         * Setting this username requires a signature, but none was provided.
         */
        RequiresSignature: PlainDescriptor<undefined>;
        /**
         * The username does not meet the requirements.
         */
        InvalidUsername: PlainDescriptor<undefined>;
        /**
         * The username is already taken.
         */
        UsernameTaken: PlainDescriptor<undefined>;
        /**
         * The requested username does not exist.
         */
        NoUsername: PlainDescriptor<undefined>;
        /**
         * The username cannot be forcefully removed because it can still be accepted.
         */
        NotExpired: PlainDescriptor<undefined>;
    };
    Democracy: {
        /**
         * Value too low
         */
        ValueLow: PlainDescriptor<undefined>;
        /**
         * Proposal does not exist
         */
        ProposalMissing: PlainDescriptor<undefined>;
        /**
         * Cannot cancel the same proposal twice
         */
        AlreadyCanceled: PlainDescriptor<undefined>;
        /**
         * Proposal already made
         */
        DuplicateProposal: PlainDescriptor<undefined>;
        /**
         * Proposal still blacklisted
         */
        ProposalBlacklisted: PlainDescriptor<undefined>;
        /**
         * Next external proposal not simple majority
         */
        NotSimpleMajority: PlainDescriptor<undefined>;
        /**
         * Invalid hash
         */
        InvalidHash: PlainDescriptor<undefined>;
        /**
         * No external proposal
         */
        NoProposal: PlainDescriptor<undefined>;
        /**
         * Identity may not veto a proposal twice
         */
        AlreadyVetoed: PlainDescriptor<undefined>;
        /**
         * Vote given for invalid referendum
         */
        ReferendumInvalid: PlainDescriptor<undefined>;
        /**
         * No proposals waiting
         */
        NoneWaiting: PlainDescriptor<undefined>;
        /**
         * The given account did not vote on the referendum.
         */
        NotVoter: PlainDescriptor<undefined>;
        /**
         * The actor has no permission to conduct the action.
         */
        NoPermission: PlainDescriptor<undefined>;
        /**
         * The account is already delegating.
         */
        AlreadyDelegating: PlainDescriptor<undefined>;
        /**
         * Too high a balance was provided that the account cannot afford.
         */
        InsufficientFunds: PlainDescriptor<undefined>;
        /**
         * The account is not currently delegating.
         */
        NotDelegating: PlainDescriptor<undefined>;
        /**
         * The account currently has votes attached to it and the operation cannot succeed until
         * these are removed, either through `unvote` or `reap_vote`.
         */
        VotesExist: PlainDescriptor<undefined>;
        /**
         * The instant referendum origin is currently disallowed.
         */
        InstantNotAllowed: PlainDescriptor<undefined>;
        /**
         * Delegation to oneself makes no sense.
         */
        Nonsense: PlainDescriptor<undefined>;
        /**
         * Invalid upper bound.
         */
        WrongUpperBound: PlainDescriptor<undefined>;
        /**
         * Maximum number of votes reached.
         */
        MaxVotesReached: PlainDescriptor<undefined>;
        /**
         * Maximum number of items reached.
         */
        TooMany: PlainDescriptor<undefined>;
        /**
         * Voting period too low
         */
        VotingPeriodLow: PlainDescriptor<undefined>;
        /**
         * The preimage does not exist.
         */
        PreimageNotExist: PlainDescriptor<undefined>;
    };
    Elections: {
        /**
         * Cannot vote when no candidates or members exist.
         */
        UnableToVote: PlainDescriptor<undefined>;
        /**
         * Must vote for at least one candidate.
         */
        NoVotes: PlainDescriptor<undefined>;
        /**
         * Cannot vote more than candidates.
         */
        TooManyVotes: PlainDescriptor<undefined>;
        /**
         * Cannot vote more than maximum allowed.
         */
        MaximumVotesExceeded: PlainDescriptor<undefined>;
        /**
         * Cannot vote with stake less than minimum balance.
         */
        LowBalance: PlainDescriptor<undefined>;
        /**
         * Voter can not pay voting bond.
         */
        UnableToPayBond: PlainDescriptor<undefined>;
        /**
         * Must be a voter.
         */
        MustBeVoter: PlainDescriptor<undefined>;
        /**
         * Duplicated candidate submission.
         */
        DuplicatedCandidate: PlainDescriptor<undefined>;
        /**
         * Too many candidates have been created.
         */
        TooManyCandidates: PlainDescriptor<undefined>;
        /**
         * Member cannot re-submit candidacy.
         */
        MemberSubmit: PlainDescriptor<undefined>;
        /**
         * Runner cannot re-submit candidacy.
         */
        RunnerUpSubmit: PlainDescriptor<undefined>;
        /**
         * Candidate does not have enough funds.
         */
        InsufficientCandidateFunds: PlainDescriptor<undefined>;
        /**
         * Not a member.
         */
        NotMember: PlainDescriptor<undefined>;
        /**
         * The provided count of number of candidates is incorrect.
         */
        InvalidWitnessData: PlainDescriptor<undefined>;
        /**
         * The provided count of number of votes is incorrect.
         */
        InvalidVoteCount: PlainDescriptor<undefined>;
        /**
         * The renouncing origin presented a wrong `Renouncing` parameter.
         */
        InvalidRenouncing: PlainDescriptor<undefined>;
        /**
         * Prediction regarding replacement after member removal is wrong.
         */
        InvalidReplacement: PlainDescriptor<undefined>;
    };
    Council: {
        /**
         * Account is not a member
         */
        NotMember: PlainDescriptor<undefined>;
        /**
         * Duplicate proposals not allowed
         */
        DuplicateProposal: PlainDescriptor<undefined>;
        /**
         * Proposal must exist
         */
        ProposalMissing: PlainDescriptor<undefined>;
        /**
         * Mismatched index
         */
        WrongIndex: PlainDescriptor<undefined>;
        /**
         * Duplicate vote ignored
         */
        DuplicateVote: PlainDescriptor<undefined>;
        /**
         * Members are already initialized!
         */
        AlreadyInitialized: PlainDescriptor<undefined>;
        /**
         * The close call was made too early, before the end of the voting.
         */
        TooEarly: PlainDescriptor<undefined>;
        /**
         * There can only be a maximum of `MaxProposals` active proposals.
         */
        TooManyProposals: PlainDescriptor<undefined>;
        /**
         * The given weight bound for the proposal was too low.
         */
        WrongProposalWeight: PlainDescriptor<undefined>;
        /**
         * The given length bound for the proposal was too low.
         */
        WrongProposalLength: PlainDescriptor<undefined>;
        /**
         * Prime account is not a member
         */
        PrimeAccountNotMember: PlainDescriptor<undefined>;
    };
    TechnicalCommittee: {
        /**
         * Account is not a member
         */
        NotMember: PlainDescriptor<undefined>;
        /**
         * Duplicate proposals not allowed
         */
        DuplicateProposal: PlainDescriptor<undefined>;
        /**
         * Proposal must exist
         */
        ProposalMissing: PlainDescriptor<undefined>;
        /**
         * Mismatched index
         */
        WrongIndex: PlainDescriptor<undefined>;
        /**
         * Duplicate vote ignored
         */
        DuplicateVote: PlainDescriptor<undefined>;
        /**
         * Members are already initialized!
         */
        AlreadyInitialized: PlainDescriptor<undefined>;
        /**
         * The close call was made too early, before the end of the voting.
         */
        TooEarly: PlainDescriptor<undefined>;
        /**
         * There can only be a maximum of `MaxProposals` active proposals.
         */
        TooManyProposals: PlainDescriptor<undefined>;
        /**
         * The given weight bound for the proposal was too low.
         */
        WrongProposalWeight: PlainDescriptor<undefined>;
        /**
         * The given length bound for the proposal was too low.
         */
        WrongProposalLength: PlainDescriptor<undefined>;
        /**
         * Prime account is not a member
         */
        PrimeAccountNotMember: PlainDescriptor<undefined>;
    };
    Tips: {
        /**
         * The reason given is just too big.
         */
        ReasonTooBig: PlainDescriptor<undefined>;
        /**
         * The tip was already found/started.
         */
        AlreadyKnown: PlainDescriptor<undefined>;
        /**
         * The tip hash is unknown.
         */
        UnknownTip: PlainDescriptor<undefined>;
        /**
         * The tip given was too generous.
         */
        MaxTipAmountExceeded: PlainDescriptor<undefined>;
        /**
         * The account attempting to retract the tip is not the finder of the tip.
         */
        NotFinder: PlainDescriptor<undefined>;
        /**
         * The tip cannot be claimed/closed because there are not enough tippers yet.
         */
        StillOpen: PlainDescriptor<undefined>;
        /**
         * The tip cannot be claimed/closed because it's still in the countdown period.
         */
        Premature: PlainDescriptor<undefined>;
    };
    Proxy: {
        /**
         * There are too many proxies registered or too many announcements pending.
         */
        TooMany: PlainDescriptor<undefined>;
        /**
         * Proxy registration not found.
         */
        NotFound: PlainDescriptor<undefined>;
        /**
         * Sender is not a proxy of the account to be proxied.
         */
        NotProxy: PlainDescriptor<undefined>;
        /**
         * A call which is incompatible with the proxy type's filter was attempted.
         */
        Unproxyable: PlainDescriptor<undefined>;
        /**
         * Account is already a proxy.
         */
        Duplicate: PlainDescriptor<undefined>;
        /**
         * Call may not be made by proxy because it may escalate its privileges.
         */
        NoPermission: PlainDescriptor<undefined>;
        /**
         * Announcement, if made at all, was made too recently.
         */
        Unannounced: PlainDescriptor<undefined>;
        /**
         * Cannot add self as proxy.
         */
        NoSelfProxy: PlainDescriptor<undefined>;
    };
    Multisig: {
        /**
         * Threshold must be 2 or greater.
         */
        MinimumThreshold: PlainDescriptor<undefined>;
        /**
         * Call is already approved by this signatory.
         */
        AlreadyApproved: PlainDescriptor<undefined>;
        /**
         * Call doesn't need any (more) approvals.
         */
        NoApprovalsNeeded: PlainDescriptor<undefined>;
        /**
         * There are too few signatories in the list.
         */
        TooFewSignatories: PlainDescriptor<undefined>;
        /**
         * There are too many signatories in the list.
         */
        TooManySignatories: PlainDescriptor<undefined>;
        /**
         * The signatories were provided out of order; they should be ordered.
         */
        SignatoriesOutOfOrder: PlainDescriptor<undefined>;
        /**
         * The sender was contained in the other signatories; it shouldn't be.
         */
        SenderInSignatories: PlainDescriptor<undefined>;
        /**
         * Multisig operation not found when attempting to cancel.
         */
        NotFound: PlainDescriptor<undefined>;
        /**
         * Only the account that originally created the multisig is able to cancel it.
         */
        NotOwner: PlainDescriptor<undefined>;
        /**
         * No timepoint was given, yet the multisig operation is already underway.
         */
        NoTimepoint: PlainDescriptor<undefined>;
        /**
         * A different timepoint was given to the multisig operation that is underway.
         */
        WrongTimepoint: PlainDescriptor<undefined>;
        /**
         * A timepoint was given, yet no multisig operation is underway.
         */
        UnexpectedTimepoint: PlainDescriptor<undefined>;
        /**
         * The maximum weight information provided was too low.
         */
        MaxWeightTooLow: PlainDescriptor<undefined>;
        /**
         * The data to be stored is already stored.
         */
        AlreadyStored: PlainDescriptor<undefined>;
    };
    Uniques: {
        /**
         * The signing account has no permission to do the operation.
         */
        NoPermission: PlainDescriptor<undefined>;
        /**
         * The given item ID is unknown.
         */
        UnknownCollection: PlainDescriptor<undefined>;
        /**
         * The item ID has already been used for an item.
         */
        AlreadyExists: PlainDescriptor<undefined>;
        /**
         * The owner turned out to be different to what was expected.
         */
        WrongOwner: PlainDescriptor<undefined>;
        /**
         * Invalid witness data given.
         */
        BadWitness: PlainDescriptor<undefined>;
        /**
         * The item ID is already taken.
         */
        InUse: PlainDescriptor<undefined>;
        /**
         * The item or collection is frozen.
         */
        Frozen: PlainDescriptor<undefined>;
        /**
         * The delegate turned out to be different to what was expected.
         */
        WrongDelegate: PlainDescriptor<undefined>;
        /**
         * There is no delegate approved.
         */
        NoDelegate: PlainDescriptor<undefined>;
        /**
         * No approval exists that would allow the transfer.
         */
        Unapproved: PlainDescriptor<undefined>;
        /**
         * The named owner has not signed ownership of the collection is acceptable.
         */
        Unaccepted: PlainDescriptor<undefined>;
        /**
         * The item is locked.
         */
        Locked: PlainDescriptor<undefined>;
        /**
         * All items have been minted.
         */
        MaxSupplyReached: PlainDescriptor<undefined>;
        /**
         * The max supply has already been set.
         */
        MaxSupplyAlreadySet: PlainDescriptor<undefined>;
        /**
         * The provided max supply is less to the amount of items a collection already has.
         */
        MaxSupplyTooSmall: PlainDescriptor<undefined>;
        /**
         * The given item ID is unknown.
         */
        UnknownItem: PlainDescriptor<undefined>;
        /**
         * Item is not for sale.
         */
        NotForSale: PlainDescriptor<undefined>;
        /**
         * The provided bid is too low.
         */
        BidTooLow: PlainDescriptor<undefined>;
    };
    StateTrieMigration: {
        /**
         * Max signed limits not respected.
         */
        MaxSignedLimits: PlainDescriptor<undefined>;
        /**
         * A key was longer than the configured maximum.
         *
         * This means that the migration halted at the current [`Progress`] and
         * can be resumed with a larger [`crate::Config::MaxKeyLen`] value.
         * Retrying with the same [`crate::Config::MaxKeyLen`] value will not work.
         * The value should only be increased to avoid a storage migration for the currently
         * stored [`crate::Progress::LastKey`].
         */
        KeyTooLong: PlainDescriptor<undefined>;
        /**
         * submitter does not have enough funds.
         */
        NotEnoughFunds: PlainDescriptor<undefined>;
        /**
         * Bad witness data provided.
         */
        BadWitness: PlainDescriptor<undefined>;
        /**
         * Signed migration is not allowed because the maximum limit is not set yet.
         */
        SignedMigrationNotAllowed: PlainDescriptor<undefined>;
        /**
         * Bad child root provided.
         */
        BadChildRoot: PlainDescriptor<undefined>;
    };
    ConvictionVoting: {
        /**
         * Poll is not ongoing.
         */
        NotOngoing: PlainDescriptor<undefined>;
        /**
         * The given account did not vote on the poll.
         */
        NotVoter: PlainDescriptor<undefined>;
        /**
         * The actor has no permission to conduct the action.
         */
        NoPermission: PlainDescriptor<undefined>;
        /**
         * The actor has no permission to conduct the action right now but will do in the future.
         */
        NoPermissionYet: PlainDescriptor<undefined>;
        /**
         * The account is already delegating.
         */
        AlreadyDelegating: PlainDescriptor<undefined>;
        /**
         * The account currently has votes attached to it and the operation cannot succeed until
         * these are removed through `remove_vote`.
         */
        AlreadyVoting: PlainDescriptor<undefined>;
        /**
         * Too high a balance was provided that the account cannot afford.
         */
        InsufficientFunds: PlainDescriptor<undefined>;
        /**
         * The account is not currently delegating.
         */
        NotDelegating: PlainDescriptor<undefined>;
        /**
         * Delegation to oneself makes no sense.
         */
        Nonsense: PlainDescriptor<undefined>;
        /**
         * Maximum number of votes reached.
         */
        MaxVotesReached: PlainDescriptor<undefined>;
        /**
         * The class must be supplied since it is not easily determinable from the state.
         */
        ClassNeeded: PlainDescriptor<undefined>;
        /**
         * The class ID supplied is invalid.
         */
        BadClass: PlainDescriptor<undefined>;
    };
    Referenda: {
        /**
         * Referendum is not ongoing.
         */
        NotOngoing: PlainDescriptor<undefined>;
        /**
         * Referendum's decision deposit is already paid.
         */
        HasDeposit: PlainDescriptor<undefined>;
        /**
         * The track identifier given was invalid.
         */
        BadTrack: PlainDescriptor<undefined>;
        /**
         * There are already a full complement of referenda in progress for this track.
         */
        Full: PlainDescriptor<undefined>;
        /**
         * The queue of the track is empty.
         */
        QueueEmpty: PlainDescriptor<undefined>;
        /**
         * The referendum index provided is invalid in this context.
         */
        BadReferendum: PlainDescriptor<undefined>;
        /**
         * There was nothing to do in the advancement.
         */
        NothingToDo: PlainDescriptor<undefined>;
        /**
         * No track exists for the proposal origin.
         */
        NoTrack: PlainDescriptor<undefined>;
        /**
         * Any deposit cannot be refunded until after the decision is over.
         */
        Unfinished: PlainDescriptor<undefined>;
        /**
         * The deposit refunder is not the depositor.
         */
        NoPermission: PlainDescriptor<undefined>;
        /**
         * The deposit cannot be refunded since none was made.
         */
        NoDeposit: PlainDescriptor<undefined>;
        /**
         * The referendum status is invalid for this operation.
         */
        BadStatus: PlainDescriptor<undefined>;
        /**
         * The preimage does not exist.
         */
        PreimageNotExist: PlainDescriptor<undefined>;
        /**
         * The preimage is stored with a different length than the one provided.
         */
        PreimageStoredWithDifferentLength: PlainDescriptor<undefined>;
    };
    Whitelist: {
        /**
         * The preimage of the call hash could not be loaded.
         */
        UnavailablePreImage: PlainDescriptor<undefined>;
        /**
         * The call could not be decoded.
         */
        UndecodableCall: PlainDescriptor<undefined>;
        /**
         * The weight of the decoded call was higher than the witness.
         */
        InvalidCallWeightWitness: PlainDescriptor<undefined>;
        /**
         * The call was not whitelisted.
         */
        CallIsNotWhitelisted: PlainDescriptor<undefined>;
        /**
         * The call was already whitelisted; No-Op.
         */
        CallAlreadyWhitelisted: PlainDescriptor<undefined>;
    };
    AssetRegistry: {
        /**
         * Asset ID is not available. This only happens when it reaches the MAX value of given id type.
         */
        NoIdAvailable: PlainDescriptor<undefined>;
        /**
         * Invalid asset name or symbol.
         */
        AssetNotFound: PlainDescriptor<undefined>;
        /**
         * Length of name or symbol is less than min. length.
         */
        TooShort: PlainDescriptor<undefined>;
        /**
         * Asset's symbol can't contain whitespace characters .
         */
        InvalidSymbol: PlainDescriptor<undefined>;
        /**
         * Asset ID is not registered in the asset-registry.
         */
        AssetNotRegistered: PlainDescriptor<undefined>;
        /**
         * Asset is already registered.
         */
        AssetAlreadyRegistered: PlainDescriptor<undefined>;
        /**
         * Incorrect number of assets provided to create shared asset.
         */
        InvalidSharedAssetLen: PlainDescriptor<undefined>;
        /**
         * Cannot update asset location.
         */
        CannotUpdateLocation: PlainDescriptor<undefined>;
        /**
         * Selected asset id is out of reserved range.
         */
        NotInReservedRange: PlainDescriptor<undefined>;
        /**
         * Location already registered with different asset.
         */
        LocationAlreadyRegistered: PlainDescriptor<undefined>;
        /**
         * Origin is forbidden to set/update value.
         */
        Forbidden: PlainDescriptor<undefined>;
        /**
         * Balance too low.
         */
        InsufficientBalance: PlainDescriptor<undefined>;
        /**
         * Sufficient assets can't be changed to insufficient.
         */
        ForbiddenSufficiencyChange: PlainDescriptor<undefined>;
        /**
         * Asset is already banned.
         */
        AssetAlreadyBanned: PlainDescriptor<undefined>;
        /**
         * Asset is not banned.
         */
        AssetNotBanned: PlainDescriptor<undefined>;
    };
    Claims: {
        /**
         * Ethereum signature is not valid
         */
        InvalidEthereumSignature: PlainDescriptor<undefined>;
        /**
         * Claim is not valid
         */
        NoClaimOrAlreadyClaimed: PlainDescriptor<undefined>;
        /**
         * Value reached maximum and cannot be incremented further
         */
        BalanceOverflow: PlainDescriptor<undefined>;
    };
    Omnipool: {
        /**
         * Balance too low
         */
        InsufficientBalance: PlainDescriptor<undefined>;
        /**
         * Asset is already in omnipool
         */
        AssetAlreadyAdded: PlainDescriptor<undefined>;
        /**
         * Asset is not in omnipool
         */
        AssetNotFound: PlainDescriptor<undefined>;
        /**
         * Failed to add token to Omnipool due to insufficient initial liquidity.
         */
        MissingBalance: PlainDescriptor<undefined>;
        /**
         * Invalid initial asset price.
         */
        InvalidInitialAssetPrice: PlainDescriptor<undefined>;
        /**
         * Slippage protection - minimum limit has not been reached.
         */
        BuyLimitNotReached: PlainDescriptor<undefined>;
        /**
         * Slippage protection - maximum limit has been exceeded.
         */
        SellLimitExceeded: PlainDescriptor<undefined>;
        /**
         * Position has not been found.
         */
        PositionNotFound: PlainDescriptor<undefined>;
        /**
         * Insufficient shares in position
         */
        InsufficientShares: PlainDescriptor<undefined>;
        /**
         * Asset is not allowed to be traded.
         */
        NotAllowed: PlainDescriptor<undefined>;
        /**
         * Signed account is not owner of position instance.
         */
        Forbidden: PlainDescriptor<undefined>;
        /**
         * Asset weight cap has been exceeded.
         */
        AssetWeightCapExceeded: PlainDescriptor<undefined>;
        /**
         * Asset is not registered in asset registry
         */
        AssetNotRegistered: PlainDescriptor<undefined>;
        /**
         * Provided liquidity is below minimum allowed limit
         */
        InsufficientLiquidity: PlainDescriptor<undefined>;
        /**
         * Traded amount is below minimum allowed limit
         */
        InsufficientTradingAmount: PlainDescriptor<undefined>;
        /**
         * Sell or buy with same asset ids is not allowed.
         */
        SameAssetTradeNotAllowed: PlainDescriptor<undefined>;
        /**
         * LRNA update after trade results in positive value.
         */
        HubAssetUpdateError: PlainDescriptor<undefined>;
        /**
         * Amount of shares provided cannot be 0.
         */
        InvalidSharesAmount: PlainDescriptor<undefined>;
        /**
         * Hub asset is only allowed to be sold.
         */
        InvalidHubAssetTradableState: PlainDescriptor<undefined>;
        /**
         * Asset is not allowed to be refunded.
         */
        AssetRefundNotAllowed: PlainDescriptor<undefined>;
        /**
         * Max fraction of asset to buy has been exceeded.
         */
        MaxOutRatioExceeded: PlainDescriptor<undefined>;
        /**
         * Max fraction of asset to sell has been exceeded.
         */
        MaxInRatioExceeded: PlainDescriptor<undefined>;
        /**
         * Max allowed price difference has been exceeded.
         */
        PriceDifferenceTooHigh: PlainDescriptor<undefined>;
        /**
         * Invalid oracle price - division by zero.
         */
        InvalidOraclePrice: PlainDescriptor<undefined>;
        /**
         * Failed to calculate withdrawal fee.
         */
        InvalidWithdrawalFee: PlainDescriptor<undefined>;
        /**
         * More than allowed amount of fee has been transferred.
         */
        FeeOverdraft: PlainDescriptor<undefined>;
        /**
         * Token cannot be removed from Omnipool due to shares still owned by other users.
         */
        SharesRemaining: PlainDescriptor<undefined>;
        /**
         * Token cannot be removed from Omnipool because asset is not frozen.
         */
        AssetNotFrozen: PlainDescriptor<undefined>;
        /**
         * Calculated amount out from sell trade is zero.
         */
        ZeroAmountOut: PlainDescriptor<undefined>;
        /**
         * Existential deposit of asset is not available.
         */
        ExistentialDepositNotAvailable: PlainDescriptor<undefined>;
        /**
         * Slippage protection
         */
        SlippageLimit: PlainDescriptor<undefined>;
        /**
         * Extra protocol fee has not been consumed.
         */
        ProtocolFeeNotConsumed: PlainDescriptor<undefined>;
    };
    TransactionPause: {
        /**
         * can not pause
         */
        CannotPause: PlainDescriptor<undefined>;
        /**
         * invalid character encoding
         */
        InvalidCharacter: PlainDescriptor<undefined>;
        /**
         * pallet name or function name is too long
         */
        NameTooLong: PlainDescriptor<undefined>;
    };
    Duster: {
        /**
         * Account is excluded from dusting.
         */
        AccountBlacklisted: PlainDescriptor<undefined>;
        /**
         * Account is not present in the non-dustable list.
         */
        AccountNotBlacklisted: PlainDescriptor<undefined>;
        /**
         * The balance is zero.
         */
        ZeroBalance: PlainDescriptor<undefined>;
        /**
         * The balance is sufficient to keep account open.
         */
        BalanceSufficient: PlainDescriptor<undefined>;
        /**
         * Dust account is not set.
         */
        DustAccountNotSet: PlainDescriptor<undefined>;
        /**
         * Reserve account is not set.
         */
        ReserveAccountNotSet: PlainDescriptor<undefined>;
    };
    OmnipoolWarehouseLM: {
        /**
         * Global farm does not exist.
         */
        GlobalFarmNotFound: PlainDescriptor<undefined>;
        /**
         * Yield farm does not exist.
         */
        YieldFarmNotFound: PlainDescriptor<undefined>;
        /**
         * Multiple claims in the same period is not allowed.
         */
        DoubleClaimInPeriod: PlainDescriptor<undefined>;
        /**
         * Liquidity mining is canceled.
         */
        LiquidityMiningCanceled: PlainDescriptor<undefined>;
        /**
         * Liquidity mining is not canceled.
         */
        LiquidityMiningIsActive: PlainDescriptor<undefined>;
        /**
         * Liquidity mining is in `active` or `terminated` state and action cannot be completed.
         */
        LiquidityMiningIsNotStopped: PlainDescriptor<undefined>;
        /**
         * LP shares amount is not valid.
         */
        InvalidDepositAmount: PlainDescriptor<undefined>;
        /**
         * Account is not allowed to perform action.
         */
        Forbidden: PlainDescriptor<undefined>;
        /**
         * Yield farm multiplier can't be 0.
         */
        InvalidMultiplier: PlainDescriptor<undefined>;
        /**
         * Yield farm with given `amm_pool_id` already exists in global farm.
         */
        YieldFarmAlreadyExists: PlainDescriptor<undefined>;
        /**
         * Loyalty curve's initial reward percentage is not valid. Valid range is: [0, 1).
         */
        InvalidInitialRewardPercentage: PlainDescriptor<undefined>;
        /**
         * One or more yield farms exist in global farm.
         */
        GlobalFarmIsNotEmpty: PlainDescriptor<undefined>;
        /**
         * Farm's `incentivized_asset` is missing in provided asset pair.
         */
        MissingIncentivizedAsset: PlainDescriptor<undefined>;
        /**
         * Reward currency balance is not sufficient.
         */
        InsufficientRewardCurrencyBalance: PlainDescriptor<undefined>;
        /**
         * Blocks per period can't be 0.
         */
        InvalidBlocksPerPeriod: PlainDescriptor<undefined>;
        /**
         * Yield per period can't be 0.
         */
        InvalidYieldPerPeriod: PlainDescriptor<undefined>;
        /**
         * Total rewards is less than `MinTotalFarmRewards`.
         */
        InvalidTotalRewards: PlainDescriptor<undefined>;
        /**
         * Planned yielding periods is less than `MinPlannedYieldingPeriods`.
         */
        InvalidPlannedYieldingPeriods: PlainDescriptor<undefined>;
        /**
         * Maximum number of locks reached for deposit.
         */
        MaxEntriesPerDeposit: PlainDescriptor<undefined>;
        /**
         * Trying to lock LP shares into already locked yield farm.
         */
        DoubleLock: PlainDescriptor<undefined>;
        /**
         * Yield farm entry doesn't exist for given deposit.
         */
        YieldFarmEntryNotFound: PlainDescriptor<undefined>;
        /**
         * Max number of yield farms in global farm was reached. Global farm can't accept new
         * yield farms until some yield farm is not removed from storage.
         */
        GlobalFarmIsFull: PlainDescriptor<undefined>;
        /**
         * Invalid min. deposit was set for global farm.
         */
        InvalidMinDeposit: PlainDescriptor<undefined>;
        /**
         * Price adjustment multiplier can't be 0.
         */
        InvalidPriceAdjustment: PlainDescriptor<undefined>;
        /**
         * Account creation from id failed.
         */
        ErrorGetAccountId: PlainDescriptor<undefined>;
        /**
         * Value of deposited shares amount in reward currency is bellow min. limit.
         */
        IncorrectValuedShares: PlainDescriptor<undefined>;
        /**
         * `reward_currency` is not registered in asset registry.
         */
        RewardCurrencyNotRegistered: PlainDescriptor<undefined>;
        /**
         * `incentivized_asset` is not registered in asset registry.
         */
        IncentivizedAssetNotRegistered: PlainDescriptor<undefined>;
        /**
         * Action cannot be completed because unexpected error has occurred. This should be reported
         * to protocol maintainers.
         */
        InconsistentState: PlainDescriptor<Anonymize<Ibplkiqg5rvr3e>>;
    };
    OmnipoolLiquidityMining: {
        /**
         * Asset is not in the omnipool.
         */
        AssetNotFound: PlainDescriptor<undefined>;
        /**
         * Signed account is not owner of the deposit.
         */
        Forbidden: PlainDescriptor<undefined>;
        /**
         * Rewards to claim are 0.
         */
        ZeroClaimedRewards: PlainDescriptor<undefined>;
        /**
         * Action cannot be completed because unexpected error has occurred. This should be reported
         * to protocol maintainers.
         */
        InconsistentState: PlainDescriptor<Anonymize<Icnmrtlo128skq>>;
        /**
         * Oracle could not be found for requested assets.
         */
        OracleNotAvailable: PlainDescriptor<undefined>;
        /**
         * Oracle providing `price_adjustment` could not be found for requested assets.
         */
        PriceAdjustmentNotAvailable: PlainDescriptor<undefined>;
        /**
         * No farms specified to join
         */
        NoFarmEntriesSpecified: PlainDescriptor<undefined>;
    };
    OTC: {
        /**
         * Asset does not exist in registry
         */
        AssetNotRegistered: PlainDescriptor<undefined>;
        /**
         * Order cannot be found
         */
        OrderNotFound: PlainDescriptor<undefined>;
        /**
         * Size of order ID exceeds the bound
         */
        OrderIdOutOfBound: PlainDescriptor<undefined>;
        /**
         * Cannot partially fill an order which is not partially fillable
         */
        OrderNotPartiallyFillable: PlainDescriptor<undefined>;
        /**
         * Order amount_in and amount_out must at all times be greater than the existential deposit
         * for the asset multiplied by the ExistentialDepositMultiplier.
         * A fill order may not leave behind amounts smaller than this.
         */
        OrderAmountTooSmall: PlainDescriptor<undefined>;
        /**
         * Error with math calculations
         */
        MathError: PlainDescriptor<undefined>;
        /**
         * The caller does not have permission to complete the action
         */
        Forbidden: PlainDescriptor<undefined>;
        /**
         * Reserved amount not sufficient.
         */
        InsufficientReservedAmount: PlainDescriptor<undefined>;
    };
    CircuitBreaker: {
        /**
         * Invalid value for a limit. Limit must be non-zero.
         */
        InvalidLimitValue: PlainDescriptor<undefined>;
        /**
         * Allowed liquidity limit is not stored for asset
         */
        LiquidityLimitNotStoredForAsset: PlainDescriptor<undefined>;
        /**
         * Token trade outflow per block has been reached
         */
        TokenOutflowLimitReached: PlainDescriptor<undefined>;
        /**
         * Token trade influx per block has been reached
         */
        TokenInfluxLimitReached: PlainDescriptor<undefined>;
        /**
         * Maximum pool's liquidity limit per block has been reached
         */
        MaxLiquidityLimitPerBlockReached: PlainDescriptor<undefined>;
        /**
         * Asset is not allowed to have a limit
         */
        NotAllowed: PlainDescriptor<undefined>;
    };
    Router: {
        /**
         * The trading limit has been reached
         */
        TradingLimitReached: PlainDescriptor<undefined>;
        /**
         * The the max number of trades limit is reached
         */
        MaxTradesExceeded: PlainDescriptor<undefined>;
        /**
         * The AMM pool is not supported for executing trades
         */
        PoolNotSupported: PlainDescriptor<undefined>;
        /**
         * The user has not enough balance to execute the trade
         */
        InsufficientBalance: PlainDescriptor<undefined>;
        /**
         * The calculation of route trade amounts failed in the underlying AMM
         */
        RouteCalculationFailed: PlainDescriptor<undefined>;
        /**
         * The route is invalid
         */
        InvalidRoute: PlainDescriptor<undefined>;
        /**
         * The route update was not successful
         */
        RouteUpdateIsNotSuccessful: PlainDescriptor<undefined>;
        /**
         * Route contains assets that has no oracle data
         */
        RouteHasNoOracle: PlainDescriptor<undefined>;
        /**
         * The route execution failed in the underlying AMM
         */
        InvalidRouteExecution: PlainDescriptor<undefined>;
        /**
         * Trading same assets is not allowed.
         */
        NotAllowed: PlainDescriptor<undefined>;
    };
    Staking: {
        /**
         * Balance is too low.
         */
        InsufficientBalance: PlainDescriptor<undefined>;
        /**
         * Staked amount is too low.
         */
        InsufficientStake: PlainDescriptor<undefined>;
        /**
         * Staking position has not been found.
         */
        PositionNotFound: PlainDescriptor<undefined>;
        /**
         * Maximum amount of votes were reached for staking position.
         */
        MaxVotesReached: PlainDescriptor<undefined>;
        /**
         * Staking is not initialized.
         */
        NotInitialized: PlainDescriptor<undefined>;
        /**
         * Staking is already initialized.
         */
        AlreadyInitialized: PlainDescriptor<undefined>;
        /**
         * Arithmetic error.
         */
        Arithmetic: PlainDescriptor<undefined>;
        /**
         * Pot's balance is zero.
         */
        MissingPotBalance: PlainDescriptor<undefined>;
        /**
         * Account's position already exists.
         */
        PositionAlreadyExists: PlainDescriptor<undefined>;
        /**
         * Signer is not an owner of the staking position.
         */
        Forbidden: PlainDescriptor<undefined>;
        /**
         * Position contains registered votes.
         */
        ExistingVotes: PlainDescriptor<undefined>;
        /**
         * Position contains processed votes. Removed these votes first before increasing stake or claiming.
         */
        ExistingProcessedVotes: PlainDescriptor<undefined>;
        /**
         * Action cannot be completed because unexpected error has occurred. This should be reported
         * to protocol maintainers.
         */
        InconsistentState: PlainDescriptor<Anonymize<Icojqvn3afk41n>>;
    };
    Stableswap: {
        /**
         * Creating a pool with same assets or less than 2 assets is not allowed.
         */
        IncorrectAssets: PlainDescriptor<undefined>;
        /**
         * Maximum number of assets has been exceeded.
         */
        MaxAssetsExceeded: PlainDescriptor<undefined>;
        /**
         * A pool with given assets does not exist.
         */
        PoolNotFound: PlainDescriptor<undefined>;
        /**
         * A pool with given assets already exists.
         */
        PoolExists: PlainDescriptor<undefined>;
        /**
         * Asset is not in the pool.
         */
        AssetNotInPool: PlainDescriptor<undefined>;
        /**
         * Share asset is not registered in Registry.
         */
        ShareAssetNotRegistered: PlainDescriptor<undefined>;
        /**
         * Share asset is amount assets when creating a pool.
         */
        ShareAssetInPoolAssets: PlainDescriptor<undefined>;
        /**
         * One or more assets are not registered in AssetRegistry
         */
        AssetNotRegistered: PlainDescriptor<undefined>;
        /**
         * Invalid asset amount provided. Amount must be greater than zero.
         */
        InvalidAssetAmount: PlainDescriptor<undefined>;
        /**
         * Balance of an asset is not sufficient to perform a trade.
         */
        InsufficientBalance: PlainDescriptor<undefined>;
        /**
         * Balance of a share asset is not sufficient to withdraw liquidity.
         */
        InsufficientShares: PlainDescriptor<undefined>;
        /**
         * Liquidity has not reached the required minimum.
         */
        InsufficientLiquidity: PlainDescriptor<undefined>;
        /**
         * Insufficient liquidity left in the pool after withdrawal.
         */
        InsufficientLiquidityRemaining: PlainDescriptor<undefined>;
        /**
         * Amount is less than the minimum trading amount configured.
         */
        InsufficientTradingAmount: PlainDescriptor<undefined>;
        /**
         * Minimum limit has not been reached during trade.
         */
        BuyLimitNotReached: PlainDescriptor<undefined>;
        /**
         * Maximum limit has been exceeded during trade.
         */
        SellLimitExceeded: PlainDescriptor<undefined>;
        /**
         * Initial liquidity of asset must be > 0.
         */
        InvalidInitialLiquidity: PlainDescriptor<undefined>;
        /**
         * Amplification is outside configured range.
         */
        InvalidAmplification: PlainDescriptor<undefined>;
        /**
         * Remaining balance of share asset is below asset's existential deposit.
         */
        InsufficientShareBalance: PlainDescriptor<undefined>;
        /**
         * Not allowed to perform an operation on given asset.
         */
        NotAllowed: PlainDescriptor<undefined>;
        /**
         * Future block number is in the past.
         */
        PastBlock: PlainDescriptor<undefined>;
        /**
         * New amplification is equal to the previous value.
         */
        SameAmplification: PlainDescriptor<undefined>;
        /**
         * Slippage protection.
         */
        SlippageLimit: PlainDescriptor<undefined>;
        /**
         * Failed to retrieve asset decimals.
         */
        UnknownDecimals: PlainDescriptor<undefined>;
        /**
         * List of provided pegs is incorrect.
         */
        IncorrectInitialPegs: PlainDescriptor<undefined>;
        /**
         * Failed to retrieve oracle entry.
         */
        MissingTargetPegOracle: PlainDescriptor<undefined>;
        /**
         * Creating pool with pegs is not allowed for asset with different decimals.
         */
        IncorrectAssetDecimals: PlainDescriptor<undefined>;
    };
    Bonds: {
        /**
         * Bond not registered
         */
        NotRegistered: PlainDescriptor<undefined>;
        /**
         * Bond is not mature
         */
        NotMature: PlainDescriptor<undefined>;
        /**
         * Maturity not long enough
         */
        InvalidMaturity: PlainDescriptor<undefined>;
        /**
         * Asset type not allowed for underlying asset
         */
        DisallowedAsset: PlainDescriptor<undefined>;
        /**
         * Asset is not registered in `AssetRegistry`
         */
        AssetNotFound: PlainDescriptor<undefined>;
        /**
         * Generated name is not valid.
         */
        InvalidBondName: PlainDescriptor<undefined>;
        /**
         * Bond's name parsing was now successful
         */
        FailToParseName: PlainDescriptor<undefined>;
    };
    OtcSettlements: {
        /**
         * Otc order not found
         */
        OrderNotFound: PlainDescriptor<undefined>;
        /**
         * OTC order is not partially fillable
         */
        NotPartiallyFillable: PlainDescriptor<undefined>;
        /**
         * Provided route doesn't match the existing route
         */
        InvalidRoute: PlainDescriptor<undefined>;
        /**
         * Initial and final balance are different
         */
        BalanceInconsistency: PlainDescriptor<undefined>;
        /**
         * Trade amount higher than necessary
         */
        TradeAmountTooHigh: PlainDescriptor<undefined>;
        /**
         * Trade amount lower than necessary
         */
        TradeAmountTooLow: PlainDescriptor<undefined>;
        /**
         * Price for a route is not available
         */
        PriceNotAvailable: PlainDescriptor<undefined>;
    };
    LBP: {
        /**
         * Pool assets can not be the same
         */
        CannotCreatePoolWithSameAssets: PlainDescriptor<undefined>;
        /**
         * Account is not a pool owner
         */
        NotOwner: PlainDescriptor<undefined>;
        /**
         * Sale already started
         */
        SaleStarted: PlainDescriptor<undefined>;
        /**
         * Sale is still in progress
         */
        SaleNotEnded: PlainDescriptor<undefined>;
        /**
         * Sale is not running
         */
        SaleIsNotRunning: PlainDescriptor<undefined>;
        /**
         * Sale duration is too long
         */
        MaxSaleDurationExceeded: PlainDescriptor<undefined>;
        /**
         * Liquidity being added should not be zero
         */
        CannotAddZeroLiquidity: PlainDescriptor<undefined>;
        /**
         * Asset balance too low
         */
        InsufficientAssetBalance: PlainDescriptor<undefined>;
        /**
         * Pool does not exist
         */
        PoolNotFound: PlainDescriptor<undefined>;
        /**
         * Pool has been already created
         */
        PoolAlreadyExists: PlainDescriptor<undefined>;
        /**
         * Invalid block range
         */
        InvalidBlockRange: PlainDescriptor<undefined>;
        /**
         * Calculation error
         */
        WeightCalculationError: PlainDescriptor<undefined>;
        /**
         * Weight set is out of range
         */
        InvalidWeight: PlainDescriptor<undefined>;
        /**
         * Can not perform a trade with zero amount
         */
        ZeroAmount: PlainDescriptor<undefined>;
        /**
         * Trade amount is too high
         */
        MaxInRatioExceeded: PlainDescriptor<undefined>;
        /**
         * Trade amount is too high
         */
        MaxOutRatioExceeded: PlainDescriptor<undefined>;
        /**
         * Invalid fee amount
         */
        FeeAmountInvalid: PlainDescriptor<undefined>;
        /**
         * Trading limit reached
         */
        TradingLimitReached: PlainDescriptor<undefined>;
        /**
         * An unexpected integer overflow occurred
         */
        Overflow: PlainDescriptor<undefined>;
        /**
         * Nothing to update
         */
        NothingToUpdate: PlainDescriptor<undefined>;
        /**
         * Liquidity has not reached the required minimum.
         */
        InsufficientLiquidity: PlainDescriptor<undefined>;
        /**
         * Amount is less than minimum trading limit.
         */
        InsufficientTradingAmount: PlainDescriptor<undefined>;
        /**
         * Not more than one fee collector per asset id
         */
        FeeCollectorWithAssetAlreadyUsed: PlainDescriptor<undefined>;
    };
    XYK: {
        /**
         * It is not allowed to create a pool between same assets.
         */
        CannotCreatePoolWithSameAssets: PlainDescriptor<undefined>;
        /**
         * Liquidity has not reached the required minimum.
         */
        InsufficientLiquidity: PlainDescriptor<undefined>;
        /**
         * Amount is less than min trading limit.
         */
        InsufficientTradingAmount: PlainDescriptor<undefined>;
        /**
         * Liquidity is zero.
         */
        ZeroLiquidity: PlainDescriptor<undefined>;
        /**
         * It is not allowed to create a pool with zero initial price.
         * Not used, kept for backward compatibility
         */
        ZeroInitialPrice: PlainDescriptor<undefined>;
        /**
         * Overflow
         * Not used, kept for backward compatibility
         */
        CreatePoolAssetAmountInvalid: PlainDescriptor<undefined>;
        /**
         * Overflow
         */
        InvalidMintedLiquidity: PlainDescriptor<undefined>;
        /**
         * Overflow
         */
        InvalidLiquidityAmount: PlainDescriptor<undefined>;
        /**
         * Asset amount has exceeded given limit.
         */
        AssetAmountExceededLimit: PlainDescriptor<undefined>;
        /**
         * Asset amount has not reached given limit.
         */
        AssetAmountNotReachedLimit: PlainDescriptor<undefined>;
        /**
         * Asset balance is not sufficient.
         */
        InsufficientAssetBalance: PlainDescriptor<undefined>;
        /**
         * Not enough asset liquidity in the pool.
         */
        InsufficientPoolAssetBalance: PlainDescriptor<undefined>;
        /**
         * Not enough core asset liquidity in the pool.
         */
        InsufficientNativeCurrencyBalance: PlainDescriptor<undefined>;
        /**
         * Liquidity pool for given assets does not exist.
         */
        TokenPoolNotFound: PlainDescriptor<undefined>;
        /**
         * Liquidity pool for given assets already exists.
         */
        TokenPoolAlreadyExists: PlainDescriptor<undefined>;
        /**
         * Overflow
         */
        AddAssetAmountInvalid: PlainDescriptor<undefined>;
        /**
         * Overflow
         */
        RemoveAssetAmountInvalid: PlainDescriptor<undefined>;
        /**
         * Overflow
         */
        SellAssetAmountInvalid: PlainDescriptor<undefined>;
        /**
         * Overflow
         */
        BuyAssetAmountInvalid: PlainDescriptor<undefined>;
        /**
         * Overflow
         */
        FeeAmountInvalid: PlainDescriptor<undefined>;
        /**
         * Overflow
         */
        CannotApplyDiscount: PlainDescriptor<undefined>;
        /**
         * Max fraction of pool to buy in single transaction has been exceeded.
         */
        MaxOutRatioExceeded: PlainDescriptor<undefined>;
        /**
         * Max fraction of pool to sell in single transaction has been exceeded.
         */
        MaxInRatioExceeded: PlainDescriptor<undefined>;
        /**
         * Overflow
         */
        Overflow: PlainDescriptor<undefined>;
        /**
         * Pool cannot be created due to outside factors.
         */
        CannotCreatePool: PlainDescriptor<undefined>;
        /**
         * Slippage protection.
         */
        SlippageLimit: PlainDescriptor<undefined>;
    };
    Referrals: {
        /**
         * Referral code is too long.
         */
        TooLong: PlainDescriptor<undefined>;
        /**
         * Referral code is too short.
         */
        TooShort: PlainDescriptor<undefined>;
        /**
         * Referral code contains invalid character. Only alphanumeric characters are allowed.
         */
        InvalidCharacter: PlainDescriptor<undefined>;
        /**
         * Referral code already exists.
         */
        AlreadyExists: PlainDescriptor<undefined>;
        /**
         * Provided referral code is invalid. Either does not exist or is too long.
         */
        InvalidCode: PlainDescriptor<undefined>;
        /**
         * Account is already linked to another referral account.
         */
        AlreadyLinked: PlainDescriptor<undefined>;
        /**
         * Nothing in the referral pot account for the asset.
         */
        ZeroAmount: PlainDescriptor<undefined>;
        /**
         * Linking an account to the same referral account is not allowed.
         */
        LinkNotAllowed: PlainDescriptor<undefined>;
        /**
         * Calculated rewards are more than the fee amount. This can happen if percentages are incorrectly set.
         */
        IncorrectRewardCalculation: PlainDescriptor<undefined>;
        /**
         * Given referrer and trader percentages exceeds 100% percent.
         */
        IncorrectRewardPercentage: PlainDescriptor<undefined>;
        /**
         * The account has already a code registered.
         */
        AlreadyRegistered: PlainDescriptor<undefined>;
        /**
         * Price for given asset pair not found.
         */
        PriceNotFound: PlainDescriptor<undefined>;
        /**
         * Minimum trading amount for conversion has not been reached.
         */
        ConversionMinTradingAmountNotReached: PlainDescriptor<undefined>;
        /**
         * Zero amount received from conversion.
         */
        ConversionZeroAmountReceived: PlainDescriptor<undefined>;
    };
    Liquidation: {
        /**
         * AssetId to EVM address conversion failed
         */
        AssetConversionFailed: PlainDescriptor<undefined>;
        /**
         * Liquidation call failed
         */
        LiquidationCallFailed: PlainDescriptor<undefined>;
        /**
         * Provided route doesn't match the existing route
         */
        InvalidRoute: PlainDescriptor<undefined>;
        /**
         * Liquidation was not profitable enough to repay flash loan
         */
        NotProfitable: PlainDescriptor<undefined>;
    };
    Tokens: {
        /**
         * The balance is too low
         */
        BalanceTooLow: PlainDescriptor<undefined>;
        /**
         * Cannot convert Amount into Balance type
         */
        AmountIntoBalanceFailed: PlainDescriptor<undefined>;
        /**
         * Failed because liquidity restrictions due to locking
         */
        LiquidityRestrictions: PlainDescriptor<undefined>;
        /**
         * Failed because the maximum locks was exceeded
         */
        MaxLocksExceeded: PlainDescriptor<undefined>;
        /**
         * Transfer/payment would kill account
         */
        KeepAlive: PlainDescriptor<undefined>;
        /**
         * Value too low to create account due to existential deposit
         */
        ExistentialDeposit: PlainDescriptor<undefined>;
        /**
         * Beneficiary account must pre-exist
         */
        DeadAccount: PlainDescriptor<undefined>;
        /**
        
         */
        TooManyReserves: PlainDescriptor<undefined>;
    };
    Currencies: {
        /**
         * Unable to convert the Amount type into Balance.
         */
        AmountIntoBalanceFailed: PlainDescriptor<undefined>;
        /**
         * Balance is too low.
         */
        BalanceTooLow: PlainDescriptor<undefined>;
        /**
         * Deposit result is not expected
         */
        DepositFailed: PlainDescriptor<undefined>;
        /**
         * Operation is not supported for this currency
         */
        NotSupported: PlainDescriptor<undefined>;
    };
    Vesting: {
        /**
         * Vesting period is zero
         */
        ZeroVestingPeriod: PlainDescriptor<undefined>;
        /**
         * Number of vests is zero
         */
        ZeroVestingPeriodCount: PlainDescriptor<undefined>;
        /**
         * Insufficient amount of balance to lock
         */
        InsufficientBalanceToLock: PlainDescriptor<undefined>;
        /**
         * This account have too many vesting schedules
         */
        TooManyVestingSchedules: PlainDescriptor<undefined>;
        /**
         * The vested transfer amount is too low
         */
        AmountLow: PlainDescriptor<undefined>;
        /**
         * Failed because the maximum vesting schedules was exceeded
         */
        MaxVestingSchedulesExceeded: PlainDescriptor<undefined>;
    };
    EVM: {
        /**
         * Not enough balance to perform action
         */
        BalanceLow: PlainDescriptor<undefined>;
        /**
         * Calculating total fee overflowed
         */
        FeeOverflow: PlainDescriptor<undefined>;
        /**
         * Calculating total payment overflowed
         */
        PaymentOverflow: PlainDescriptor<undefined>;
        /**
         * Withdraw fee failed
         */
        WithdrawFailed: PlainDescriptor<undefined>;
        /**
         * Gas price is too low.
         */
        GasPriceTooLow: PlainDescriptor<undefined>;
        /**
         * Nonce is invalid
         */
        InvalidNonce: PlainDescriptor<undefined>;
        /**
         * Gas limit is too low.
         */
        GasLimitTooLow: PlainDescriptor<undefined>;
        /**
         * Gas limit is too high.
         */
        GasLimitTooHigh: PlainDescriptor<undefined>;
        /**
         * The chain id is invalid.
         */
        InvalidChainId: PlainDescriptor<undefined>;
        /**
         * the signature is invalid.
         */
        InvalidSignature: PlainDescriptor<undefined>;
        /**
         * EVM reentrancy
         */
        Reentrancy: PlainDescriptor<undefined>;
        /**
         * EIP-3607,
         */
        TransactionMustComeFromEOA: PlainDescriptor<undefined>;
        /**
         * Undefined error.
         */
        Undefined: PlainDescriptor<undefined>;
    };
    Ethereum: {
        /**
         * Signature is invalid.
         */
        InvalidSignature: PlainDescriptor<undefined>;
        /**
         * Pre-log is present, therefore transact is not allowed.
         */
        PreLogExists: PlainDescriptor<undefined>;
    };
    EVMAccounts: {
        /**
         * Active EVM account cannot be bound
         */
        TruncatedAccountAlreadyUsed: PlainDescriptor<undefined>;
        /**
         * Address is already bound
         */
        AddressAlreadyBound: PlainDescriptor<undefined>;
        /**
         * Bound address cannot be used
         */
        BoundAddressCannotBeUsed: PlainDescriptor<undefined>;
        /**
         * Address not whitelisted
         */
        AddressNotWhitelisted: PlainDescriptor<undefined>;
    };
    XYKLiquidityMining: {
        /**
         * Nft pallet didn't return an owner.
         */
        CantFindDepositOwner: PlainDescriptor<undefined>;
        /**
         * Account balance of XYK pool shares is not sufficient.
         */
        InsufficientXykSharesBalance: PlainDescriptor<undefined>;
        /**
         * XYK pool does not exist
         */
        XykPoolDoesntExist: PlainDescriptor<undefined>;
        /**
         * Account is not deposit owner.
         */
        NotDepositOwner: PlainDescriptor<undefined>;
        /**
         * XYK did not return assets for given pool id
         */
        CantGetXykAssets: PlainDescriptor<undefined>;
        /**
         * Deposit data not found
         */
        DepositDataNotFound: PlainDescriptor<undefined>;
        /**
         * Calculated reward to claim is 0.
         */
        ZeroClaimedRewards: PlainDescriptor<undefined>;
        /**
         * Asset is not in the `AssetPair`.
         */
        AssetNotInAssetPair: PlainDescriptor<undefined>;
        /**
         * Provided `AssetPair` is not used by the deposit.
         */
        InvalidAssetPair: PlainDescriptor<undefined>;
        /**
         * Asset is not registered in asset registry.
         */
        AssetNotRegistered: PlainDescriptor<undefined>;
        /**
         * Failed to calculate `pot`'s account.
         */
        FailToGetPotId: PlainDescriptor<undefined>;
        /**
         * No global farm - yield farm pairs specified to join
         */
        NoFarmsSpecified: PlainDescriptor<undefined>;
    };
    XYKWarehouseLM: {
        /**
         * Global farm does not exist.
         */
        GlobalFarmNotFound: PlainDescriptor<undefined>;
        /**
         * Yield farm does not exist.
         */
        YieldFarmNotFound: PlainDescriptor<undefined>;
        /**
         * Multiple claims in the same period is not allowed.
         */
        DoubleClaimInPeriod: PlainDescriptor<undefined>;
        /**
         * Liquidity mining is canceled.
         */
        LiquidityMiningCanceled: PlainDescriptor<undefined>;
        /**
         * Liquidity mining is not canceled.
         */
        LiquidityMiningIsActive: PlainDescriptor<undefined>;
        /**
         * Liquidity mining is in `active` or `terminated` state and action cannot be completed.
         */
        LiquidityMiningIsNotStopped: PlainDescriptor<undefined>;
        /**
         * LP shares amount is not valid.
         */
        InvalidDepositAmount: PlainDescriptor<undefined>;
        /**
         * Account is not allowed to perform action.
         */
        Forbidden: PlainDescriptor<undefined>;
        /**
         * Yield farm multiplier can't be 0.
         */
        InvalidMultiplier: PlainDescriptor<undefined>;
        /**
         * Yield farm with given `amm_pool_id` already exists in global farm.
         */
        YieldFarmAlreadyExists: PlainDescriptor<undefined>;
        /**
         * Loyalty curve's initial reward percentage is not valid. Valid range is: [0, 1).
         */
        InvalidInitialRewardPercentage: PlainDescriptor<undefined>;
        /**
         * One or more yield farms exist in global farm.
         */
        GlobalFarmIsNotEmpty: PlainDescriptor<undefined>;
        /**
         * Farm's `incentivized_asset` is missing in provided asset pair.
         */
        MissingIncentivizedAsset: PlainDescriptor<undefined>;
        /**
         * Reward currency balance is not sufficient.
         */
        InsufficientRewardCurrencyBalance: PlainDescriptor<undefined>;
        /**
         * Blocks per period can't be 0.
         */
        InvalidBlocksPerPeriod: PlainDescriptor<undefined>;
        /**
         * Yield per period can't be 0.
         */
        InvalidYieldPerPeriod: PlainDescriptor<undefined>;
        /**
         * Total rewards is less than `MinTotalFarmRewards`.
         */
        InvalidTotalRewards: PlainDescriptor<undefined>;
        /**
         * Planned yielding periods is less than `MinPlannedYieldingPeriods`.
         */
        InvalidPlannedYieldingPeriods: PlainDescriptor<undefined>;
        /**
         * Maximum number of locks reached for deposit.
         */
        MaxEntriesPerDeposit: PlainDescriptor<undefined>;
        /**
         * Trying to lock LP shares into already locked yield farm.
         */
        DoubleLock: PlainDescriptor<undefined>;
        /**
         * Yield farm entry doesn't exist for given deposit.
         */
        YieldFarmEntryNotFound: PlainDescriptor<undefined>;
        /**
         * Max number of yield farms in global farm was reached. Global farm can't accept new
         * yield farms until some yield farm is not removed from storage.
         */
        GlobalFarmIsFull: PlainDescriptor<undefined>;
        /**
         * Invalid min. deposit was set for global farm.
         */
        InvalidMinDeposit: PlainDescriptor<undefined>;
        /**
         * Price adjustment multiplier can't be 0.
         */
        InvalidPriceAdjustment: PlainDescriptor<undefined>;
        /**
         * Account creation from id failed.
         */
        ErrorGetAccountId: PlainDescriptor<undefined>;
        /**
         * Value of deposited shares amount in reward currency is bellow min. limit.
         */
        IncorrectValuedShares: PlainDescriptor<undefined>;
        /**
         * `reward_currency` is not registered in asset registry.
         */
        RewardCurrencyNotRegistered: PlainDescriptor<undefined>;
        /**
         * `incentivized_asset` is not registered in asset registry.
         */
        IncentivizedAssetNotRegistered: PlainDescriptor<undefined>;
        /**
         * Action cannot be completed because unexpected error has occurred. This should be reported
         * to protocol maintainers.
         */
        InconsistentState: PlainDescriptor<Anonymize<Ibplkiqg5rvr3e>>;
    };
    DCA: {
        /**
         * Schedule not exist
         */
        ScheduleNotFound: PlainDescriptor<undefined>;
        /**
         * The min trade amount is not reached
         */
        MinTradeAmountNotReached: PlainDescriptor<undefined>;
        /**
         * Forbidden as the user is not the owner of the schedule
         */
        Forbidden: PlainDescriptor<undefined>;
        /**
         * The next execution block number is not in the future
         */
        BlockNumberIsNotInFuture: PlainDescriptor<undefined>;
        /**
         * Price is unstable as price change from oracle data is bigger than max allowed
         */
        PriceUnstable: PlainDescriptor<undefined>;
        /**
         * Order was randomly rescheduled to next block
         */
        Bumped: PlainDescriptor<undefined>;
        /**
         * Error occurred when calculating price
         */
        CalculatingPriceError: PlainDescriptor<undefined>;
        /**
         * The total amount to be reserved is smaller than min budget
         */
        TotalAmountIsSmallerThanMinBudget: PlainDescriptor<undefined>;
        /**
         * The budget is too low for executing at least two orders
         */
        BudgetTooLow: PlainDescriptor<undefined>;
        /**
         * There is no free block found to plan DCA execution
         */
        NoFreeBlockFound: PlainDescriptor<undefined>;
        /**
         * The DCA schedule has been manually terminated
         */
        ManuallyTerminated: PlainDescriptor<undefined>;
        /**
         * Max number of retries reached for schedule
         */
        MaxRetryReached: PlainDescriptor<undefined>;
        /**
         * Absolutely trade limit reached, leading to retry
         */
        TradeLimitReached: PlainDescriptor<undefined>;
        /**
         * Slippage limit calculated from oracle is reached, leading to retry
         */
        SlippageLimitReached: PlainDescriptor<undefined>;
        /**
         * No parent hash has been found from relay chain
         */
        NoParentHashFound: PlainDescriptor<undefined>;
        /**
         * Error that should not really happen only in case of invalid state of the schedule storage entries
         */
        InvalidState: PlainDescriptor<undefined>;
        /**
         * Period should be longer than 5 blocks
         */
        PeriodTooShort: PlainDescriptor<undefined>;
        /**
         * Stability threshold cannot be higher than `MaxConfigurablePriceDifferenceBetweenBlock`
         */
        StabilityThresholdTooHigh: PlainDescriptor<undefined>;
    };
    Scheduler: {
        /**
         * Failed to schedule a call
         */
        FailedToSchedule: PlainDescriptor<undefined>;
        /**
         * Cannot find the scheduled call.
         */
        NotFound: PlainDescriptor<undefined>;
        /**
         * Given target block number is in the past.
         */
        TargetBlockNumberInPast: PlainDescriptor<undefined>;
        /**
         * Reschedule failed because it does not change scheduled time.
         */
        RescheduleNoChange: PlainDescriptor<undefined>;
        /**
         * Attempt to use a non-named function on a named task.
         */
        Named: PlainDescriptor<undefined>;
    };
    ParachainSystem: {
        /**
         * Attempt to upgrade validation function while existing upgrade pending.
         */
        OverlappingUpgrades: PlainDescriptor<undefined>;
        /**
         * Polkadot currently prohibits this parachain from upgrading its validation function.
         */
        ProhibitedByPolkadot: PlainDescriptor<undefined>;
        /**
         * The supplied validation function has compiled into a blob larger than Polkadot is
         * willing to run.
         */
        TooBig: PlainDescriptor<undefined>;
        /**
         * The inherent which supplies the validation data did not run this block.
         */
        ValidationDataNotAvailable: PlainDescriptor<undefined>;
        /**
         * The inherent which supplies the host configuration did not run this block.
         */
        HostConfigurationNotAvailable: PlainDescriptor<undefined>;
        /**
         * No validation function upgrade is currently scheduled.
         */
        NotScheduled: PlainDescriptor<undefined>;
        /**
         * No code upgrade has been authorized.
         */
        NothingAuthorized: PlainDescriptor<undefined>;
        /**
         * The given code upgrade has not been authorized.
         */
        Unauthorized: PlainDescriptor<undefined>;
    };
    PolkadotXcm: {
        /**
         * The desired destination was unreachable, generally because there is a no way of routing
         * to it.
         */
        Unreachable: PlainDescriptor<undefined>;
        /**
         * There was some other issue (i.e. not to do with routing) in sending the message.
         * Perhaps a lack of space for buffering the message.
         */
        SendFailure: PlainDescriptor<undefined>;
        /**
         * The message execution fails the filter.
         */
        Filtered: PlainDescriptor<undefined>;
        /**
         * The message's weight could not be determined.
         */
        UnweighableMessage: PlainDescriptor<undefined>;
        /**
         * The destination `Location` provided cannot be inverted.
         */
        DestinationNotInvertible: PlainDescriptor<undefined>;
        /**
         * The assets to be sent are empty.
         */
        Empty: PlainDescriptor<undefined>;
        /**
         * Could not re-anchor the assets to declare the fees for the destination chain.
         */
        CannotReanchor: PlainDescriptor<undefined>;
        /**
         * Too many assets have been attempted for transfer.
         */
        TooManyAssets: PlainDescriptor<undefined>;
        /**
         * Origin is invalid for sending.
         */
        InvalidOrigin: PlainDescriptor<undefined>;
        /**
         * The version of the `Versioned` value used is not able to be interpreted.
         */
        BadVersion: PlainDescriptor<undefined>;
        /**
         * The given location could not be used (e.g. because it cannot be expressed in the
         * desired version of XCM).
         */
        BadLocation: PlainDescriptor<undefined>;
        /**
         * The referenced subscription could not be found.
         */
        NoSubscription: PlainDescriptor<undefined>;
        /**
         * The location is invalid since it already has a subscription from us.
         */
        AlreadySubscribed: PlainDescriptor<undefined>;
        /**
         * Could not check-out the assets for teleportation to the destination chain.
         */
        CannotCheckOutTeleport: PlainDescriptor<undefined>;
        /**
         * The owner does not own (all) of the asset that they wish to do the operation on.
         */
        LowBalance: PlainDescriptor<undefined>;
        /**
         * The asset owner has too many locks on the asset.
         */
        TooManyLocks: PlainDescriptor<undefined>;
        /**
         * The given account is not an identifiable sovereign account for any location.
         */
        AccountNotSovereign: PlainDescriptor<undefined>;
        /**
         * The operation required fees to be paid which the initiator could not meet.
         */
        FeesNotMet: PlainDescriptor<undefined>;
        /**
         * A remote lock with the corresponding data could not be found.
         */
        LockNotFound: PlainDescriptor<undefined>;
        /**
         * The unlock operation cannot succeed because there are still consumers of the lock.
         */
        InUse: PlainDescriptor<undefined>;
        /**
         * Invalid asset, reserve chain could not be determined for it.
         */
        InvalidAssetUnknownReserve: PlainDescriptor<undefined>;
        /**
         * Invalid asset, do not support remote asset reserves with different fees reserves.
         */
        InvalidAssetUnsupportedReserve: PlainDescriptor<undefined>;
        /**
         * Too many assets with different reserve locations have been attempted for transfer.
         */
        TooManyReserves: PlainDescriptor<undefined>;
        /**
         * Local XCM execution incomplete.
         */
        LocalExecutionIncomplete: PlainDescriptor<undefined>;
    };
    XcmpQueue: {
        /**
         * Setting the queue config failed since one of its values was invalid.
         */
        BadQueueConfig: PlainDescriptor<undefined>;
        /**
         * The execution is already suspended.
         */
        AlreadySuspended: PlainDescriptor<undefined>;
        /**
         * The execution is already resumed.
         */
        AlreadyResumed: PlainDescriptor<undefined>;
        /**
         * There are too many active outbound channels.
         */
        TooManyActiveOutboundChannels: PlainDescriptor<undefined>;
        /**
         * The message is too big.
         */
        TooBig: PlainDescriptor<undefined>;
    };
    MessageQueue: {
        /**
         * Page is not reapable because it has items remaining to be processed and is not old
         * enough.
         */
        NotReapable: PlainDescriptor<undefined>;
        /**
         * Page to be reaped does not exist.
         */
        NoPage: PlainDescriptor<undefined>;
        /**
         * The referenced message could not be found.
         */
        NoMessage: PlainDescriptor<undefined>;
        /**
         * The message was already processed and cannot be processed again.
         */
        AlreadyProcessed: PlainDescriptor<undefined>;
        /**
         * The message is queued for future execution.
         */
        Queued: PlainDescriptor<undefined>;
        /**
         * There is temporarily not enough weight to continue servicing messages.
         */
        InsufficientWeight: PlainDescriptor<undefined>;
        /**
         * This message is temporarily unprocessable.
         *
         * Such errors are expected, but not guaranteed, to resolve themselves eventually through
         * retrying.
         */
        TemporarilyUnprocessable: PlainDescriptor<undefined>;
        /**
         * The queue is paused and no message can be executed from it.
         *
         * This can change at any time and may resolve in the future by re-trying.
         */
        QueuePaused: PlainDescriptor<undefined>;
        /**
         * Another call is in progress and needs to finish before this call can happen.
         */
        RecursiveDisallowed: PlainDescriptor<undefined>;
    };
    OrmlXcm: {
        /**
         * The message and destination combination was not recognized as being
         * reachable.
         */
        Unreachable: PlainDescriptor<undefined>;
        /**
         * The message and destination was recognized as being reachable but
         * the operation could not be completed.
         */
        SendFailure: PlainDescriptor<undefined>;
        /**
         * The version of the `Versioned` value used is not able to be
         * interpreted.
         */
        BadVersion: PlainDescriptor<undefined>;
    };
    XTokens: {
        /**
         * Asset has no reserve location.
         */
        AssetHasNoReserve: PlainDescriptor<undefined>;
        /**
         * Not cross-chain transfer.
         */
        NotCrossChainTransfer: PlainDescriptor<undefined>;
        /**
         * Invalid transfer destination.
         */
        InvalidDest: PlainDescriptor<undefined>;
        /**
         * Currency is not cross-chain transferable.
         */
        NotCrossChainTransferableCurrency: PlainDescriptor<undefined>;
        /**
         * The message's weight could not be determined.
         */
        UnweighableMessage: PlainDescriptor<undefined>;
        /**
         * XCM execution failed.
         */
        XcmExecutionFailed: PlainDescriptor<undefined>;
        /**
         * Could not re-anchor the assets to declare the fees for the
         * destination chain.
         */
        CannotReanchor: PlainDescriptor<undefined>;
        /**
         * Could not get ancestry of asset reserve location.
         */
        InvalidAncestry: PlainDescriptor<undefined>;
        /**
         * The Asset is invalid.
         */
        InvalidAsset: PlainDescriptor<undefined>;
        /**
         * The destination `Location` provided cannot be inverted.
         */
        DestinationNotInvertible: PlainDescriptor<undefined>;
        /**
         * The version of the `Versioned` value used is not able to be
         * interpreted.
         */
        BadVersion: PlainDescriptor<undefined>;
        /**
         * We tried sending distinct asset and fee but they have different
         * reserve chains.
         */
        DistinctReserveForAssetAndFee: PlainDescriptor<undefined>;
        /**
         * The fee is zero.
         */
        ZeroFee: PlainDescriptor<undefined>;
        /**
         * The transfering asset amount is zero.
         */
        ZeroAmount: PlainDescriptor<undefined>;
        /**
         * The number of assets to be sent is over the maximum.
         */
        TooManyAssetsBeingSent: PlainDescriptor<undefined>;
        /**
         * The specified index does not exist in a Assets struct.
         */
        AssetIndexNonExistent: PlainDescriptor<undefined>;
        /**
         * Fee is not enough.
         */
        FeeNotEnough: PlainDescriptor<undefined>;
        /**
         * Not supported Location
         */
        NotSupportedLocation: PlainDescriptor<undefined>;
        /**
         * MinXcmFee not registered for certain reserve location
         */
        MinXcmFeeNotDefined: PlainDescriptor<undefined>;
        /**
         * Asset transfer is limited by RateLimiter.
         */
        RateLimited: PlainDescriptor<undefined>;
    };
    UnknownTokens: {
        /**
         * The balance is too low.
         */
        BalanceTooLow: PlainDescriptor<undefined>;
        /**
         * The operation will cause balance to overflow.
         */
        BalanceOverflow: PlainDescriptor<undefined>;
        /**
         * Unhandled asset.
         */
        UnhandledAsset: PlainDescriptor<undefined>;
    };
    CollatorSelection: {
        /**
         * The pallet has too many candidates.
         */
        TooManyCandidates: PlainDescriptor<undefined>;
        /**
         * Leaving would result in too few candidates.
         */
        TooFewEligibleCollators: PlainDescriptor<undefined>;
        /**
         * Account is already a candidate.
         */
        AlreadyCandidate: PlainDescriptor<undefined>;
        /**
         * Account is not a candidate.
         */
        NotCandidate: PlainDescriptor<undefined>;
        /**
         * There are too many Invulnerables.
         */
        TooManyInvulnerables: PlainDescriptor<undefined>;
        /**
         * Account is already an Invulnerable.
         */
        AlreadyInvulnerable: PlainDescriptor<undefined>;
        /**
         * Account is not an Invulnerable.
         */
        NotInvulnerable: PlainDescriptor<undefined>;
        /**
         * Account has no associated validator ID.
         */
        NoAssociatedValidatorId: PlainDescriptor<undefined>;
        /**
         * Validator ID is not yet registered.
         */
        ValidatorNotRegistered: PlainDescriptor<undefined>;
        /**
         * Could not insert in the candidate list.
         */
        InsertToCandidateListFailed: PlainDescriptor<undefined>;
        /**
         * Could not remove from the candidate list.
         */
        RemoveFromCandidateListFailed: PlainDescriptor<undefined>;
        /**
         * New deposit amount would be below the minimum candidacy bond.
         */
        DepositTooLow: PlainDescriptor<undefined>;
        /**
         * Could not update the candidate list.
         */
        UpdateCandidateListFailed: PlainDescriptor<undefined>;
        /**
         * Deposit amount is too low to take the target's slot in the candidate list.
         */
        InsufficientBond: PlainDescriptor<undefined>;
        /**
         * The target account to be replaced in the candidate list is not a candidate.
         */
        TargetIsNotCandidate: PlainDescriptor<undefined>;
        /**
         * The updated deposit amount is equal to the amount already reserved.
         */
        IdenticalDeposit: PlainDescriptor<undefined>;
        /**
         * Cannot lower candidacy bond while occupying a future collator slot in the list.
         */
        InvalidUnreserve: PlainDescriptor<undefined>;
    };
    Session: {
        /**
         * Invalid ownership proof.
         */
        InvalidProof: PlainDescriptor<undefined>;
        /**
         * No associated validator ID for account.
         */
        NoAssociatedValidatorId: PlainDescriptor<undefined>;
        /**
         * Registered duplicate key.
         */
        DuplicatedKey: PlainDescriptor<undefined>;
        /**
         * No keys are associated with this account.
         */
        NoKeys: PlainDescriptor<undefined>;
        /**
         * Key setting account is not live, so it's impossible to associate keys.
         */
        NoAccount: PlainDescriptor<undefined>;
    };
    EmaOracle: {
        /**
        
         */
        TooManyUniqueEntries: PlainDescriptor<undefined>;
        /**
        
         */
        OnTradeValueZero: PlainDescriptor<undefined>;
        /**
        
         */
        OracleNotFound: PlainDescriptor<undefined>;
        /**
         * Asset not found
         */
        AssetNotFound: PlainDescriptor<undefined>;
        /**
         * The new price is outside the max allowed range
         */
        PriceOutsideAllowedRange: PlainDescriptor<undefined>;
    };
    Broadcast: {
        /**
         * The execution context call stack has reached its maximum size
         */
        ExecutionCallStackOverflow: PlainDescriptor<undefined>;
        /**
         * The execution context call stack is empty, unable to decrease level
         */
        ExecutionCallStackUnderflow: PlainDescriptor<undefined>;
    };
};
type IConstants = {
    System: {
        /**
         * Block & extrinsics weights: base values and limits.
         */
        BlockWeights: PlainDescriptor<Anonymize<In7a38730s6qs>>;
        /**
         * The maximum length of a block (in bytes).
         */
        BlockLength: PlainDescriptor<Anonymize<If15el53dd76v9>>;
        /**
         * Maximum number of block number to block hash mappings to keep (oldest pruned first).
         */
        BlockHashCount: PlainDescriptor<number>;
        /**
         * The weight of runtime database operations the runtime can invoke.
         */
        DbWeight: PlainDescriptor<Anonymize<I9s0ave7t0vnrk>>;
        /**
         * Get the chain's in-code version.
         */
        Version: PlainDescriptor<Anonymize<Ic6nglu2db2c36>>;
        /**
         * The designated SS58 prefix of this chain.
         *
         * This replaces the "ss58Format" property declared in the chain spec. Reason is
         * that the runtime should know about the prefix in order to make use of it as
         * an identifier of the chain.
         */
        SS58Prefix: PlainDescriptor<number>;
    };
    Omnipool: {
        /**
         * Native Asset ID
         */
        HdxAssetId: PlainDescriptor<number>;
        /**
         * Hub Asset ID
         */
        HubAssetId: PlainDescriptor<number>;
        /**
         * Minimum withdrawal fee
         */
        MinWithdrawalFee: PlainDescriptor<number>;
        /**
         * Minimum trading limit
         */
        MinimumTradingLimit: PlainDescriptor<bigint>;
        /**
         * Minimum pool liquidity which can be added
         */
        MinimumPoolLiquidity: PlainDescriptor<bigint>;
        /**
         * Max fraction of asset reserve to sell in single transaction
         */
        MaxInRatio: PlainDescriptor<bigint>;
        /**
         * Max fraction of asset reserve to buy in single transaction
         */
        MaxOutRatio: PlainDescriptor<bigint>;
        /**
         * Non fungible class id
         */
        NFTCollectionId: PlainDescriptor<bigint>;
        /**
        
         */
        BurnProtocolFee: PlainDescriptor<number>;
    };
    DynamicFees: {
        /**
        
         */
        AssetFeeParameters: PlainDescriptor<Anonymize<Ie5fbn0f5capo3>>;
        /**
        
         */
        ProtocolFeeParameters: PlainDescriptor<Anonymize<Ie5fbn0f5capo3>>;
    };
    Stableswap: {
        /**
         * Minimum pool liquidity
         */
        MinPoolLiquidity: PlainDescriptor<bigint>;
        /**
         * Minimum trading amount
         */
        MinTradingLimit: PlainDescriptor<bigint>;
        /**
         * Amplification inclusive range. Pool's amp can be selected from the range only.
         */
        AmplificationRange: PlainDescriptor<Anonymize<Ia9ai1mp1viqjd>>;
    };
    LBP: {
        /**
         * Minimum trading limit, sole purpose of this is to keep the math working
         */
        MinTradingLimit: PlainDescriptor<bigint>;
        /**
         * Minimum pool liquidity, sole purpose of this is to keep the math working
         */
        MinPoolLiquidity: PlainDescriptor<bigint>;
        /**
         * Max fraction of pool to sell in single transaction
         */
        MaxInRatio: PlainDescriptor<bigint>;
        /**
         * Max fraction of pool to buy in single transaction
         */
        MaxOutRatio: PlainDescriptor<bigint>;
        /**
        
         */
        repay_fee: PlainDescriptor<Anonymize<I9jd27rnpm8ttv>>;
    };
    XYK: {
        /**
         * Native Asset Id
         */
        NativeAssetId: PlainDescriptor<number>;
        /**
         * Trading fee rate
         */
        GetExchangeFee: PlainDescriptor<Anonymize<I9jd27rnpm8ttv>>;
        /**
         * Minimum trading limit
         */
        MinTradingLimit: PlainDescriptor<bigint>;
        /**
         * Minimum pool liquidity
         */
        MinPoolLiquidity: PlainDescriptor<bigint>;
        /**
         * Max fraction of pool to sell in single transaction
         */
        MaxInRatio: PlainDescriptor<bigint>;
        /**
         * Max fraction of pool to buy in single transaction
         */
        MaxOutRatio: PlainDescriptor<bigint>;
        /**
         * Oracle source identifier for this pallet.
         */
        OracleSource: PlainDescriptor<FixedSizeBinary<8>>;
    };
    DCA: {
        /**
         * Max price difference allowed between blocks
         */
        MaxPriceDifferenceBetweenBlocks: PlainDescriptor<number>;
        /**
         * Max configurable price difference allowed between blocks
         */
        MaxConfigurablePriceDifferenceBetweenBlocks: PlainDescriptor<number>;
        /**
         * The number of max schedules to be executed per block
         */
        MaxSchedulePerBlock: PlainDescriptor<number>;
        /**
         * The number of max retries in case of trade limit error
         */
        MaxNumberOfRetriesOnError: PlainDescriptor<number>;
        /**
         * Minimal period between executions
         */
        MinimalPeriod: PlainDescriptor<number>;
        /**
         * Chance of the random rescheduling
         */
        BumpChance: PlainDescriptor<number>;
        /**
         * Minimum trading limit for a single trade
         */
        MinimumTradingLimit: PlainDescriptor<bigint>;
        /**
         * Native Asset Id
         */
        NativeAssetId: PlainDescriptor<number>;
        /**
         * Polkadot Native Asset Id (DOT)
         */
        PolkadotNativeAssetId: PlainDescriptor<number>;
        /**
         * Minimum budget to be able to schedule a DCA, specified in native currency
         */
        MinBudgetInNativeCurrency: PlainDescriptor<bigint>;
        /**
         * The fee receiver for transaction fees
         */
        FeeReceiver: PlainDescriptor<SS58String>;
        /**
         * Named reserve identifier to store named reserves for orders of each users
         */
        NamedReserveId: PlainDescriptor<FixedSizeBinary<8>>;
    };
    Aura: {
        /**
         * The slot duration Aura should run with, expressed in milliseconds.
         * The effective value of this type should not change while the chain is running.
         *
         * For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const.
         */
        SlotDuration: PlainDescriptor<bigint>;
    };
};
type IViewFns = {};
type IRuntimeCalls = {
    /**
    
     */
    CurrenciesApi: {
        /**
        
         */
        account: RuntimeDescriptor<[asset_id: number, who: SS58String], Anonymize<Ic02kut0350gb0>>;
        /**
        
         */
        accounts: RuntimeDescriptor<[who: SS58String], Anonymize<I4g15ko4u63fja>>;
        /**
        
         */
        free_balance: RuntimeDescriptor<[asset_id: number, who: SS58String], bigint>;
    };
    /**
     * API for dry-running extrinsics and XCM programs to get the programs that need to be passed to the fees API.
     *
     * All calls return a vector of tuples (location, xcm) where each "xcm" is executed in "location".
     * If there's local execution, the location will be "Here".
     * This vector can be used to calculate both execution and delivery fees.
     *
     * Calls or XCMs might fail when executed, this doesn't mean the result of these calls will be an `Err`.
     * In those cases, there might still be a valid result, with the execution error inside it.
     * The only reasons why these calls might return an error are listed in the [`Error`] enum.
     */
    DryRunApi: {
        /**
         * Dry run call.
         */
        dry_run_call: RuntimeDescriptor<[origin: Anonymize<I8rbu1vdc38cnp>, call: Anonymize<Ick2k1hvh0bm22>], Anonymize<I4e4rvm2fqc561>>;
        /**
         * Dry run XCM program
         */
        dry_run_xcm: RuntimeDescriptor<[origin_location: XcmVersionedLocation, xcm: XcmVersionedXcm], Anonymize<Id2luorng6dtg7>>;
    };
    /**
    
     */
    AaveTradeExecutor: {
        /**
        
         */
        pairs: RuntimeDescriptor<[], Anonymize<I95g6i7ilua7lq>>;
        /**
        
         */
        liquidity_depth: RuntimeDescriptor<[asset_in: number, asset_out: number], Anonymize<I35p85j063s0il>>;
        /**
        
         */
        pool: RuntimeDescriptor<[reserve: number, atoken: number], Anonymize<Id5qsstfl1fkb3>>;
        /**
        
         */
        pools: RuntimeDescriptor<[], Anonymize<I3ii6nera7pkr8>>;
    };
};
type IAsset = PlainDescriptor<void>;
export type HydrationDispatchError = unknown;
type PalletsTypedef = {
    __storage: IStorage;
    __tx: ICalls;
    __event: IEvent;
    __error: IError;
    __const: IConstants;
    __view: IViewFns;
};
type IDescriptors = {
    descriptors: {
        pallets: PalletsTypedef;
        apis: IRuntimeCalls;
    } & Promise<any>;
    metadataTypes: Promise<Uint8Array>;
    asset: IAsset;
    getMetadata: () => Promise<Uint8Array>;
    genesis: string | undefined;
};
declare const _allDescriptors: IDescriptors;
export default _allDescriptors;
export type HydrationApis = ApisFromDef<IRuntimeCalls>;
export type HydrationQueries = QueryFromPalletsDef<PalletsTypedef>;
export type HydrationCalls = TxFromPalletsDef<PalletsTypedef>;
export type HydrationEvents = EventsFromPalletsDef<PalletsTypedef>;
export type HydrationErrors = ErrorsFromPalletsDef<PalletsTypedef>;
export type HydrationConstants = ConstFromPalletsDef<PalletsTypedef>;
export type HydrationViewFns = ViewFnsFromPalletsDef<PalletsTypedef>;
export type HydrationCallData = Anonymize<Ick2k1hvh0bm22> & {
    value: {
        type: string;
    };
};
export type HydrationWhitelistEntry = PalletKey | ApiKey<IRuntimeCalls> | `query.${NestedKey<PalletsTypedef['__storage']>}` | `tx.${NestedKey<PalletsTypedef['__tx']>}` | `event.${NestedKey<PalletsTypedef['__event']>}` | `error.${NestedKey<PalletsTypedef['__error']>}` | `const.${NestedKey<PalletsTypedef['__const']>}` | `view.${NestedKey<PalletsTypedef['__view']>}`;
type PalletKey = `*.${keyof (IStorage & ICalls & IEvent & IError & IConstants & IRuntimeCalls & IViewFns)}`;
type NestedKey<D extends Record<string, Record<string, any>>> = "*" | {
    [P in keyof D & string]: `${P}.*` | {
        [N in keyof D[P] & string]: `${P}.${N}`;
    }[keyof D[P] & string];
}[keyof D & string];
type ApiKey<D extends Record<string, Record<string, any>>> = "api.*" | {
    [P in keyof D & string]: `api.${P}.*` | {
        [N in keyof D[P] & string]: `api.${P}.${N}`;
    }[keyof D[P] & string];
}[keyof D & string];
