import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from 'ethers';
import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi';
import type { Listener, Provider } from '@ethersproject/providers';
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common';
export declare namespace EscrowedIlluvium2 {
    type VotingPowerRecordStruct = {
        blockNumber: PromiseOrValue<BigNumberish>;
        votingPower: PromiseOrValue<BigNumberish>;
    };
    type VotingPowerRecordStructOutput = [BigNumber, BigNumber] & {
        blockNumber: BigNumber;
        votingPower: BigNumber;
    };
}
export interface IlluviumSIlv2Interface extends utils.Interface {
    functions: {
        'DELEGATION_TYPEHASH()': FunctionFragment;
        'DOMAIN_TYPEHASH()': FunctionFragment;
        'FEATURE_BURNS_ON_BEHALF()': FunctionFragment;
        'FEATURE_DELEGATIONS()': FunctionFragment;
        'FEATURE_DELEGATIONS_ON_BEHALF()': FunctionFragment;
        'FEATURE_OWN_BURNS()': FunctionFragment;
        'FEATURE_TRANSFERS()': FunctionFragment;
        'FEATURE_TRANSFERS_ON_BEHALF()': FunctionFragment;
        'FEATURE_UNSAFE_TRANSFERS()': FunctionFragment;
        'ROLE_ACCESS_MANAGER()': FunctionFragment;
        'ROLE_ERC20_RECEIVER()': FunctionFragment;
        'ROLE_ERC20_SENDER()': FunctionFragment;
        'ROLE_TOKEN_CREATOR()': FunctionFragment;
        'ROLE_TOKEN_DESTROYER()': FunctionFragment;
        'allowance(address,address)': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'burn(address,uint256)': FunctionFragment;
        'decimals()': FunctionFragment;
        'decreaseAllowance(address,uint256)': FunctionFragment;
        'delegate(address)': FunctionFragment;
        'delegateWithSig(address,uint256,uint256,uint8,bytes32,bytes32)': FunctionFragment;
        'evaluateBy(address,uint256,uint256)': FunctionFragment;
        'features()': FunctionFragment;
        'getVotingPower(address)': FunctionFragment;
        'getVotingPowerAt(address,uint256)': FunctionFragment;
        'getVotingPowerHistory(address)': FunctionFragment;
        'getVotingPowerHistoryLength(address)': FunctionFragment;
        'increaseAllowance(address,uint256)': FunctionFragment;
        'isFeatureEnabled(uint256)': FunctionFragment;
        'isOperatorInRole(address,uint256)': FunctionFragment;
        'isSenderInRole(uint256)': FunctionFragment;
        'mint(address,uint256)': FunctionFragment;
        'name()': FunctionFragment;
        'nonces(address)': FunctionFragment;
        'safeTransferFrom(address,address,uint256,bytes)': FunctionFragment;
        'symbol()': FunctionFragment;
        'tokenBalances(address)': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'transfer(address,uint256)': FunctionFragment;
        'transferAllowances(address,address)': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
        'unsafeTransferFrom(address,address,uint256)': FunctionFragment;
        'updateFeatures(uint256)': FunctionFragment;
        'updateRole(address,uint256)': FunctionFragment;
        'userRoles(address)': FunctionFragment;
        'votingDelegates(address)': FunctionFragment;
        'votingPowerHistory(address,uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'DELEGATION_TYPEHASH' | 'DOMAIN_TYPEHASH' | 'FEATURE_BURNS_ON_BEHALF' | 'FEATURE_DELEGATIONS' | 'FEATURE_DELEGATIONS_ON_BEHALF' | 'FEATURE_OWN_BURNS' | 'FEATURE_TRANSFERS' | 'FEATURE_TRANSFERS_ON_BEHALF' | 'FEATURE_UNSAFE_TRANSFERS' | 'ROLE_ACCESS_MANAGER' | 'ROLE_ERC20_RECEIVER' | 'ROLE_ERC20_SENDER' | 'ROLE_TOKEN_CREATOR' | 'ROLE_TOKEN_DESTROYER' | 'allowance' | 'approve' | 'balanceOf' | 'burn' | 'decimals' | 'decreaseAllowance' | 'delegate' | 'delegateWithSig' | 'evaluateBy' | 'features' | 'getVotingPower' | 'getVotingPowerAt' | 'getVotingPowerHistory' | 'getVotingPowerHistoryLength' | 'increaseAllowance' | 'isFeatureEnabled' | 'isOperatorInRole' | 'isSenderInRole' | 'mint' | 'name' | 'nonces' | 'safeTransferFrom' | 'symbol' | 'tokenBalances' | 'totalSupply' | 'transfer' | 'transferAllowances' | 'transferFrom' | 'unsafeTransferFrom' | 'updateFeatures' | 'updateRole' | 'userRoles' | 'votingDelegates' | 'votingPowerHistory'): FunctionFragment;
    encodeFunctionData(functionFragment: 'DELEGATION_TYPEHASH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'DOMAIN_TYPEHASH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'FEATURE_BURNS_ON_BEHALF', values?: undefined): string;
    encodeFunctionData(functionFragment: 'FEATURE_DELEGATIONS', values?: undefined): string;
    encodeFunctionData(functionFragment: 'FEATURE_DELEGATIONS_ON_BEHALF', values?: undefined): string;
    encodeFunctionData(functionFragment: 'FEATURE_OWN_BURNS', values?: undefined): string;
    encodeFunctionData(functionFragment: 'FEATURE_TRANSFERS', values?: undefined): string;
    encodeFunctionData(functionFragment: 'FEATURE_TRANSFERS_ON_BEHALF', values?: undefined): string;
    encodeFunctionData(functionFragment: 'FEATURE_UNSAFE_TRANSFERS', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ROLE_ACCESS_MANAGER', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ROLE_ERC20_RECEIVER', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ROLE_ERC20_SENDER', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ROLE_TOKEN_CREATOR', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ROLE_TOKEN_DESTROYER', values?: undefined): string;
    encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'burn', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'decimals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decreaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'delegate', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'delegateWithSig', values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: 'evaluateBy', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'features', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getVotingPower', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getVotingPowerAt', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getVotingPowerHistory', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getVotingPowerHistoryLength', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'increaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'isFeatureEnabled', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'isOperatorInRole', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'isSenderInRole', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'mint', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'nonces', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'safeTransferFrom', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'symbol', values?: undefined): string;
    encodeFunctionData(functionFragment: 'tokenBalances', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transfer', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferAllowances', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'transferFrom', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'unsafeTransferFrom', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'updateFeatures', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'updateRole', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'userRoles', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'votingDelegates', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'votingPowerHistory', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'DELEGATION_TYPEHASH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'DOMAIN_TYPEHASH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'FEATURE_BURNS_ON_BEHALF', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'FEATURE_DELEGATIONS', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'FEATURE_DELEGATIONS_ON_BEHALF', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'FEATURE_OWN_BURNS', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'FEATURE_TRANSFERS', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'FEATURE_TRANSFERS_ON_BEHALF', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'FEATURE_UNSAFE_TRANSFERS', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ROLE_ACCESS_MANAGER', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ROLE_ERC20_RECEIVER', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ROLE_ERC20_SENDER', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ROLE_TOKEN_CREATOR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ROLE_TOKEN_DESTROYER', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'burn', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decreaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'delegate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'delegateWithSig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'evaluateBy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'features', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getVotingPower', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getVotingPowerAt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getVotingPowerHistory', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getVotingPowerHistoryLength', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isFeatureEnabled', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isOperatorInRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isSenderInRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mint', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nonces', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'safeTransferFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'tokenBalances', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferAllowances', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unsafeTransferFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateFeatures', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'userRoles', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'votingDelegates', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'votingPowerHistory', data: BytesLike): Result;
    events: {
        'Approval(address,address,uint256)': EventFragment;
        'Approved(address,address,uint256,uint256)': EventFragment;
        'Burnt(address,address,uint256)': EventFragment;
        'DelegateChanged(address,address,address)': EventFragment;
        'Minted(address,address,uint256)': EventFragment;
        'RoleUpdated(address,address,uint256,uint256)': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
        'Transferred(address,address,address,uint256)': EventFragment;
        'VotingPowerChanged(address,uint256,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Approved'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Burnt'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DelegateChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Minted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'VotingPowerChanged'): EventFragment;
}
export interface ApprovalEventObject {
    _owner: string;
    _spender: string;
    _value: BigNumber;
}
export declare type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>;
export declare type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
export interface ApprovedEventObject {
    _owner: string;
    _spender: string;
    _oldValue: BigNumber;
    _value: BigNumber;
}
export declare type ApprovedEvent = TypedEvent<[string, string, BigNumber, BigNumber], ApprovedEventObject>;
export declare type ApprovedEventFilter = TypedEventFilter<ApprovedEvent>;
export interface BurntEventObject {
    _by: string;
    _from: string;
    _value: BigNumber;
}
export declare type BurntEvent = TypedEvent<[string, string, BigNumber], BurntEventObject>;
export declare type BurntEventFilter = TypedEventFilter<BurntEvent>;
export interface DelegateChangedEventObject {
    _of: string;
    _from: string;
    _to: string;
}
export declare type DelegateChangedEvent = TypedEvent<[string, string, string], DelegateChangedEventObject>;
export declare type DelegateChangedEventFilter = TypedEventFilter<DelegateChangedEvent>;
export interface MintedEventObject {
    _by: string;
    _to: string;
    _value: BigNumber;
}
export declare type MintedEvent = TypedEvent<[string, string, BigNumber], MintedEventObject>;
export declare type MintedEventFilter = TypedEventFilter<MintedEvent>;
export interface RoleUpdatedEventObject {
    _by: string;
    _to: string;
    _requested: BigNumber;
    _actual: BigNumber;
}
export declare type RoleUpdatedEvent = TypedEvent<[string, string, BigNumber, BigNumber], RoleUpdatedEventObject>;
export declare type RoleUpdatedEventFilter = TypedEventFilter<RoleUpdatedEvent>;
export interface TransferEventObject {
    _from: string;
    _to: string;
    _value: BigNumber;
}
export declare type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>;
export declare type TransferEventFilter = TypedEventFilter<TransferEvent>;
export interface TransferredEventObject {
    _by: string;
    _from: string;
    _to: string;
    _value: BigNumber;
}
export declare type TransferredEvent = TypedEvent<[string, string, string, BigNumber], TransferredEventObject>;
export declare type TransferredEventFilter = TypedEventFilter<TransferredEvent>;
export interface VotingPowerChangedEventObject {
    _of: string;
    _fromVal: BigNumber;
    _toVal: BigNumber;
}
export declare type VotingPowerChangedEvent = TypedEvent<[string, BigNumber, BigNumber], VotingPowerChangedEventObject>;
export declare type VotingPowerChangedEventFilter = TypedEventFilter<VotingPowerChangedEvent>;
export interface IlluviumSIlv2 extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: IlluviumSIlv2Interface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        DELEGATION_TYPEHASH(overrides?: CallOverrides): Promise<[string]>;
        DOMAIN_TYPEHASH(overrides?: CallOverrides): Promise<[string]>;
        FEATURE_BURNS_ON_BEHALF(overrides?: CallOverrides): Promise<[number]>;
        FEATURE_DELEGATIONS(overrides?: CallOverrides): Promise<[number]>;
        FEATURE_DELEGATIONS_ON_BEHALF(overrides?: CallOverrides): Promise<[number]>;
        FEATURE_OWN_BURNS(overrides?: CallOverrides): Promise<[number]>;
        FEATURE_TRANSFERS(overrides?: CallOverrides): Promise<[number]>;
        FEATURE_TRANSFERS_ON_BEHALF(overrides?: CallOverrides): Promise<[number]>;
        FEATURE_UNSAFE_TRANSFERS(overrides?: CallOverrides): Promise<[number]>;
        ROLE_ACCESS_MANAGER(overrides?: CallOverrides): Promise<[BigNumber]>;
        ROLE_ERC20_RECEIVER(overrides?: CallOverrides): Promise<[number]>;
        ROLE_ERC20_SENDER(overrides?: CallOverrides): Promise<[number]>;
        ROLE_TOKEN_CREATOR(overrides?: CallOverrides): Promise<[number]>;
        ROLE_TOKEN_DESTROYER(overrides?: CallOverrides): Promise<[number]>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            remaining: BigNumber;
        }>;
        approve(_spender: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        balanceOf(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            balance: BigNumber;
        }>;
        burn(_from: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        decreaseAllowance(_spender: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        delegate(_to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        delegateWithSig(_to: PromiseOrValue<string>, _nonce: PromiseOrValue<BigNumberish>, _exp: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        evaluateBy(operator: PromiseOrValue<string>, target: PromiseOrValue<BigNumberish>, desired: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        features(overrides?: CallOverrides): Promise<[BigNumber]>;
        getVotingPower(_of: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getVotingPowerAt(_of: PromiseOrValue<string>, _blockNum: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getVotingPowerHistory(_of: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[EscrowedIlluvium2.VotingPowerRecordStructOutput[]]>;
        getVotingPowerHistoryLength(_of: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        increaseAllowance(_spender: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isFeatureEnabled(required: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[boolean]>;
        isOperatorInRole(operator: PromiseOrValue<string>, required: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[boolean]>;
        isSenderInRole(required: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[boolean]>;
        mint(_to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        name(overrides?: CallOverrides): Promise<[string]>;
        nonces(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        safeTransferFrom(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        tokenBalances(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        transfer(_to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferAllowances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        transferFrom(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unsafeTransferFrom(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateFeatures(_mask: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateRole(operator: PromiseOrValue<string>, role: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        userRoles(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        votingDelegates(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        votingPowerHistory(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            blockNumber: BigNumber;
            votingPower: BigNumber;
        }>;
    };
    DELEGATION_TYPEHASH(overrides?: CallOverrides): Promise<string>;
    DOMAIN_TYPEHASH(overrides?: CallOverrides): Promise<string>;
    FEATURE_BURNS_ON_BEHALF(overrides?: CallOverrides): Promise<number>;
    FEATURE_DELEGATIONS(overrides?: CallOverrides): Promise<number>;
    FEATURE_DELEGATIONS_ON_BEHALF(overrides?: CallOverrides): Promise<number>;
    FEATURE_OWN_BURNS(overrides?: CallOverrides): Promise<number>;
    FEATURE_TRANSFERS(overrides?: CallOverrides): Promise<number>;
    FEATURE_TRANSFERS_ON_BEHALF(overrides?: CallOverrides): Promise<number>;
    FEATURE_UNSAFE_TRANSFERS(overrides?: CallOverrides): Promise<number>;
    ROLE_ACCESS_MANAGER(overrides?: CallOverrides): Promise<BigNumber>;
    ROLE_ERC20_RECEIVER(overrides?: CallOverrides): Promise<number>;
    ROLE_ERC20_SENDER(overrides?: CallOverrides): Promise<number>;
    ROLE_TOKEN_CREATOR(overrides?: CallOverrides): Promise<number>;
    ROLE_TOKEN_DESTROYER(overrides?: CallOverrides): Promise<number>;
    allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    approve(_spender: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    balanceOf(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    burn(_from: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    decimals(overrides?: CallOverrides): Promise<number>;
    decreaseAllowance(_spender: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    delegate(_to: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    delegateWithSig(_to: PromiseOrValue<string>, _nonce: PromiseOrValue<BigNumberish>, _exp: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    evaluateBy(operator: PromiseOrValue<string>, target: PromiseOrValue<BigNumberish>, desired: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    features(overrides?: CallOverrides): Promise<BigNumber>;
    getVotingPower(_of: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getVotingPowerAt(_of: PromiseOrValue<string>, _blockNum: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getVotingPowerHistory(_of: PromiseOrValue<string>, overrides?: CallOverrides): Promise<EscrowedIlluvium2.VotingPowerRecordStructOutput[]>;
    getVotingPowerHistoryLength(_of: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    increaseAllowance(_spender: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isFeatureEnabled(required: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
    isOperatorInRole(operator: PromiseOrValue<string>, required: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
    isSenderInRole(required: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
    mint(_to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    name(overrides?: CallOverrides): Promise<string>;
    nonces(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    safeTransferFrom(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    symbol(overrides?: CallOverrides): Promise<string>;
    tokenBalances(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    transfer(_to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferAllowances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    transferFrom(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unsafeTransferFrom(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateFeatures(_mask: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateRole(operator: PromiseOrValue<string>, role: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    userRoles(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    votingDelegates(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    votingPowerHistory(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        blockNumber: BigNumber;
        votingPower: BigNumber;
    }>;
    callStatic: {
        DELEGATION_TYPEHASH(overrides?: CallOverrides): Promise<string>;
        DOMAIN_TYPEHASH(overrides?: CallOverrides): Promise<string>;
        FEATURE_BURNS_ON_BEHALF(overrides?: CallOverrides): Promise<number>;
        FEATURE_DELEGATIONS(overrides?: CallOverrides): Promise<number>;
        FEATURE_DELEGATIONS_ON_BEHALF(overrides?: CallOverrides): Promise<number>;
        FEATURE_OWN_BURNS(overrides?: CallOverrides): Promise<number>;
        FEATURE_TRANSFERS(overrides?: CallOverrides): Promise<number>;
        FEATURE_TRANSFERS_ON_BEHALF(overrides?: CallOverrides): Promise<number>;
        FEATURE_UNSAFE_TRANSFERS(overrides?: CallOverrides): Promise<number>;
        ROLE_ACCESS_MANAGER(overrides?: CallOverrides): Promise<BigNumber>;
        ROLE_ERC20_RECEIVER(overrides?: CallOverrides): Promise<number>;
        ROLE_ERC20_SENDER(overrides?: CallOverrides): Promise<number>;
        ROLE_TOKEN_CREATOR(overrides?: CallOverrides): Promise<number>;
        ROLE_TOKEN_DESTROYER(overrides?: CallOverrides): Promise<number>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(_spender: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        balanceOf(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        burn(_from: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        decimals(overrides?: CallOverrides): Promise<number>;
        decreaseAllowance(_spender: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        delegate(_to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        delegateWithSig(_to: PromiseOrValue<string>, _nonce: PromiseOrValue<BigNumberish>, _exp: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        evaluateBy(operator: PromiseOrValue<string>, target: PromiseOrValue<BigNumberish>, desired: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        features(overrides?: CallOverrides): Promise<BigNumber>;
        getVotingPower(_of: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getVotingPowerAt(_of: PromiseOrValue<string>, _blockNum: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getVotingPowerHistory(_of: PromiseOrValue<string>, overrides?: CallOverrides): Promise<EscrowedIlluvium2.VotingPowerRecordStructOutput[]>;
        getVotingPowerHistoryLength(_of: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        increaseAllowance(_spender: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        isFeatureEnabled(required: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        isOperatorInRole(operator: PromiseOrValue<string>, required: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        isSenderInRole(required: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        mint(_to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        name(overrides?: CallOverrides): Promise<string>;
        nonces(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        safeTransferFrom(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        symbol(overrides?: CallOverrides): Promise<string>;
        tokenBalances(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(_to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferAllowances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        transferFrom(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        unsafeTransferFrom(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        updateFeatures(_mask: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        updateRole(operator: PromiseOrValue<string>, role: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        userRoles(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        votingDelegates(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        votingPowerHistory(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            blockNumber: BigNumber;
            votingPower: BigNumber;
        }>;
    };
    filters: {
        'Approval(address,address,uint256)'(_owner?: PromiseOrValue<string> | null, _spender?: PromiseOrValue<string> | null, _value?: null): ApprovalEventFilter;
        Approval(_owner?: PromiseOrValue<string> | null, _spender?: PromiseOrValue<string> | null, _value?: null): ApprovalEventFilter;
        'Approved(address,address,uint256,uint256)'(_owner?: PromiseOrValue<string> | null, _spender?: PromiseOrValue<string> | null, _oldValue?: null, _value?: null): ApprovedEventFilter;
        Approved(_owner?: PromiseOrValue<string> | null, _spender?: PromiseOrValue<string> | null, _oldValue?: null, _value?: null): ApprovedEventFilter;
        'Burnt(address,address,uint256)'(_by?: PromiseOrValue<string> | null, _from?: PromiseOrValue<string> | null, _value?: null): BurntEventFilter;
        Burnt(_by?: PromiseOrValue<string> | null, _from?: PromiseOrValue<string> | null, _value?: null): BurntEventFilter;
        'DelegateChanged(address,address,address)'(_of?: PromiseOrValue<string> | null, _from?: PromiseOrValue<string> | null, _to?: PromiseOrValue<string> | null): DelegateChangedEventFilter;
        DelegateChanged(_of?: PromiseOrValue<string> | null, _from?: PromiseOrValue<string> | null, _to?: PromiseOrValue<string> | null): DelegateChangedEventFilter;
        'Minted(address,address,uint256)'(_by?: PromiseOrValue<string> | null, _to?: PromiseOrValue<string> | null, _value?: null): MintedEventFilter;
        Minted(_by?: PromiseOrValue<string> | null, _to?: PromiseOrValue<string> | null, _value?: null): MintedEventFilter;
        'RoleUpdated(address,address,uint256,uint256)'(_by?: PromiseOrValue<string> | null, _to?: PromiseOrValue<string> | null, _requested?: null, _actual?: null): RoleUpdatedEventFilter;
        RoleUpdated(_by?: PromiseOrValue<string> | null, _to?: PromiseOrValue<string> | null, _requested?: null, _actual?: null): RoleUpdatedEventFilter;
        'Transfer(address,address,uint256)'(_from?: PromiseOrValue<string> | null, _to?: PromiseOrValue<string> | null, _value?: null): TransferEventFilter;
        Transfer(_from?: PromiseOrValue<string> | null, _to?: PromiseOrValue<string> | null, _value?: null): TransferEventFilter;
        'Transferred(address,address,address,uint256)'(_by?: PromiseOrValue<string> | null, _from?: PromiseOrValue<string> | null, _to?: PromiseOrValue<string> | null, _value?: null): TransferredEventFilter;
        Transferred(_by?: PromiseOrValue<string> | null, _from?: PromiseOrValue<string> | null, _to?: PromiseOrValue<string> | null, _value?: null): TransferredEventFilter;
        'VotingPowerChanged(address,uint256,uint256)'(_of?: PromiseOrValue<string> | null, _fromVal?: null, _toVal?: null): VotingPowerChangedEventFilter;
        VotingPowerChanged(_of?: PromiseOrValue<string> | null, _fromVal?: null, _toVal?: null): VotingPowerChangedEventFilter;
    };
    estimateGas: {
        DELEGATION_TYPEHASH(overrides?: CallOverrides): Promise<BigNumber>;
        DOMAIN_TYPEHASH(overrides?: CallOverrides): Promise<BigNumber>;
        FEATURE_BURNS_ON_BEHALF(overrides?: CallOverrides): Promise<BigNumber>;
        FEATURE_DELEGATIONS(overrides?: CallOverrides): Promise<BigNumber>;
        FEATURE_DELEGATIONS_ON_BEHALF(overrides?: CallOverrides): Promise<BigNumber>;
        FEATURE_OWN_BURNS(overrides?: CallOverrides): Promise<BigNumber>;
        FEATURE_TRANSFERS(overrides?: CallOverrides): Promise<BigNumber>;
        FEATURE_TRANSFERS_ON_BEHALF(overrides?: CallOverrides): Promise<BigNumber>;
        FEATURE_UNSAFE_TRANSFERS(overrides?: CallOverrides): Promise<BigNumber>;
        ROLE_ACCESS_MANAGER(overrides?: CallOverrides): Promise<BigNumber>;
        ROLE_ERC20_RECEIVER(overrides?: CallOverrides): Promise<BigNumber>;
        ROLE_ERC20_SENDER(overrides?: CallOverrides): Promise<BigNumber>;
        ROLE_TOKEN_CREATOR(overrides?: CallOverrides): Promise<BigNumber>;
        ROLE_TOKEN_DESTROYER(overrides?: CallOverrides): Promise<BigNumber>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(_spender: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        balanceOf(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        burn(_from: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        decreaseAllowance(_spender: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        delegate(_to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        delegateWithSig(_to: PromiseOrValue<string>, _nonce: PromiseOrValue<BigNumberish>, _exp: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        evaluateBy(operator: PromiseOrValue<string>, target: PromiseOrValue<BigNumberish>, desired: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        features(overrides?: CallOverrides): Promise<BigNumber>;
        getVotingPower(_of: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getVotingPowerAt(_of: PromiseOrValue<string>, _blockNum: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getVotingPowerHistory(_of: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getVotingPowerHistoryLength(_of: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        increaseAllowance(_spender: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isFeatureEnabled(required: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        isOperatorInRole(operator: PromiseOrValue<string>, required: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        isSenderInRole(required: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        mint(_to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        nonces(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        safeTransferFrom(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        tokenBalances(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(_to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferAllowances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        transferFrom(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unsafeTransferFrom(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateFeatures(_mask: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateRole(operator: PromiseOrValue<string>, role: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        userRoles(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        votingDelegates(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        votingPowerHistory(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        DELEGATION_TYPEHASH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        DOMAIN_TYPEHASH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        FEATURE_BURNS_ON_BEHALF(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        FEATURE_DELEGATIONS(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        FEATURE_DELEGATIONS_ON_BEHALF(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        FEATURE_OWN_BURNS(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        FEATURE_TRANSFERS(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        FEATURE_TRANSFERS_ON_BEHALF(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        FEATURE_UNSAFE_TRANSFERS(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ROLE_ACCESS_MANAGER(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ROLE_ERC20_RECEIVER(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ROLE_ERC20_SENDER(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ROLE_TOKEN_CREATOR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ROLE_TOKEN_DESTROYER(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        approve(_spender: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        balanceOf(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        burn(_from: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decreaseAllowance(_spender: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        delegate(_to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        delegateWithSig(_to: PromiseOrValue<string>, _nonce: PromiseOrValue<BigNumberish>, _exp: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        evaluateBy(operator: PromiseOrValue<string>, target: PromiseOrValue<BigNumberish>, desired: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        features(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getVotingPower(_of: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getVotingPowerAt(_of: PromiseOrValue<string>, _blockNum: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getVotingPowerHistory(_of: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getVotingPowerHistoryLength(_of: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        increaseAllowance(_spender: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isFeatureEnabled(required: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isOperatorInRole(operator: PromiseOrValue<string>, required: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isSenderInRole(required: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mint(_to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        nonces(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        safeTransferFrom(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenBalances(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transfer(_to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferAllowances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferFrom(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unsafeTransferFrom(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateFeatures(_mask: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateRole(operator: PromiseOrValue<string>, role: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        userRoles(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        votingDelegates(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        votingPowerHistory(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
