import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../../common.js";
export declare namespace Checkpoints {
    type Checkpoint208Struct = {
        _key: BigNumberish;
        _value: BigNumberish;
    };
    type Checkpoint208StructOutput = [_key: bigint, _value: bigint] & {
        _key: bigint;
        _value: bigint;
    };
}
export interface InterfoldTokenInterface extends Interface {
    getFunction(nameOrSignature: "CLOCK_MODE" | "DEFAULT_ADMIN_ROLE" | "DOMAIN_SEPARATOR" | "MAX_SUPPLY" | "MINTER_ROLE" | "WHITELIST_ROLE" | "acceptOwnership" | "allowance" | "approve" | "balanceOf" | "batchMintAllocations" | "checkpoints" | "clock" | "decimals" | "delegate" | "delegateBySig" | "delegates" | "disableTransferRestrictions" | "eip712Domain" | "getPastTotalSupply" | "getPastVotes" | "getRoleAdmin" | "getVotes" | "grantRole" | "hasRole" | "mintAllocation" | "name" | "nonces" | "numCheckpoints" | "owner" | "pendingOwner" | "permit" | "renounceOwnership" | "renounceRole" | "revokeRole" | "supportsInterface" | "symbol" | "toggleTransferWhitelist" | "totalMinted" | "totalSupply" | "transfer" | "transferFrom" | "transferOwnership" | "transferWhitelisted" | "transfersRestricted" | "whitelistContracts"): FunctionFragment;
    getEvent(nameOrSignatureOrTopic: "AllocationMinted" | "Approval" | "DelegateChanged" | "DelegateVotesChanged" | "EIP712DomainChanged" | "OwnershipTransferStarted" | "OwnershipTransferred" | "RoleAdminChanged" | "RoleGranted" | "RoleRevoked" | "Transfer" | "TransferRestrictionUpdated" | "TransferWhitelistUpdated"): EventFragment;
    encodeFunctionData(functionFragment: 'CLOCK_MODE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'DEFAULT_ADMIN_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'DOMAIN_SEPARATOR', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MAX_SUPPLY', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MINTER_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'WHITELIST_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'acceptOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'allowance', values: [AddressLike, AddressLike]): string;
    encodeFunctionData(functionFragment: 'approve', values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'batchMintAllocations', values: [AddressLike[], BigNumberish[], string[]]): string;
    encodeFunctionData(functionFragment: 'checkpoints', values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: 'clock', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decimals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'delegate', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'delegateBySig', values: [AddressLike, BigNumberish, BigNumberish, BigNumberish, BytesLike, BytesLike]): string;
    encodeFunctionData(functionFragment: 'delegates', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'disableTransferRestrictions', values?: undefined): string;
    encodeFunctionData(functionFragment: 'eip712Domain', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getPastTotalSupply', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'getPastVotes', values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: 'getRoleAdmin', values: [BytesLike]): string;
    encodeFunctionData(functionFragment: 'getVotes', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'grantRole', values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: 'hasRole', values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: 'mintAllocation', values: [AddressLike, BigNumberish, string]): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'nonces', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'numCheckpoints', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pendingOwner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'permit', values: [AddressLike, AddressLike, BigNumberish, BigNumberish, BigNumberish, BytesLike, BytesLike]): string;
    encodeFunctionData(functionFragment: 'renounceOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'renounceRole', values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: 'revokeRole', values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: 'supportsInterface', values: [BytesLike]): string;
    encodeFunctionData(functionFragment: 'symbol', values?: undefined): string;
    encodeFunctionData(functionFragment: 'toggleTransferWhitelist', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'totalMinted', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transfer', values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: 'transferFrom', values: [AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'transferWhitelisted', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'transfersRestricted', values?: undefined): string;
    encodeFunctionData(functionFragment: 'whitelistContracts', values: [AddressLike, AddressLike]): string;
    decodeFunctionResult(functionFragment: 'CLOCK_MODE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'DEFAULT_ADMIN_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'DOMAIN_SEPARATOR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MAX_SUPPLY', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MINTER_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'WHITELIST_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'acceptOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'batchMintAllocations', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'checkpoints', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'clock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'delegate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'delegateBySig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'delegates', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'disableTransferRestrictions', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'eip712Domain', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPastTotalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPastVotes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getVotes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'grantRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mintAllocation', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nonces', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'numCheckpoints', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendingOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'permit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'supportsInterface', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'toggleTransferWhitelist', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalMinted', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferWhitelisted', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transfersRestricted', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'whitelistContracts', data: BytesLike): Result;
}
export declare namespace AllocationMintedEvent {
    type InputTuple = [recipient: AddressLike, amount: BigNumberish, allocation: string];
    type OutputTuple = [recipient: string, amount: bigint, allocation: string];
    interface OutputObject {
        recipient: string;
        amount: bigint;
        allocation: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ApprovalEvent {
    type InputTuple = [owner: AddressLike, spender: AddressLike, value: BigNumberish];
    type OutputTuple = [owner: string, spender: string, value: bigint];
    interface OutputObject {
        owner: string;
        spender: string;
        value: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace DelegateChangedEvent {
    type InputTuple = [delegator: AddressLike, fromDelegate: AddressLike, toDelegate: AddressLike];
    type OutputTuple = [delegator: string, fromDelegate: string, toDelegate: string];
    interface OutputObject {
        delegator: string;
        fromDelegate: string;
        toDelegate: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace DelegateVotesChangedEvent {
    type InputTuple = [delegate: AddressLike, previousVotes: BigNumberish, newVotes: BigNumberish];
    type OutputTuple = [delegate: string, previousVotes: bigint, newVotes: bigint];
    interface OutputObject {
        delegate: string;
        previousVotes: bigint;
        newVotes: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace EIP712DomainChangedEvent {
    type InputTuple = [];
    type OutputTuple = [];
    interface OutputObject {
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace OwnershipTransferStartedEvent {
    type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike];
    type OutputTuple = [previousOwner: string, newOwner: string];
    interface OutputObject {
        previousOwner: string;
        newOwner: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace OwnershipTransferredEvent {
    type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike];
    type OutputTuple = [previousOwner: string, newOwner: string];
    interface OutputObject {
        previousOwner: string;
        newOwner: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoleAdminChangedEvent {
    type InputTuple = [role: BytesLike, previousAdminRole: BytesLike, newAdminRole: BytesLike];
    type OutputTuple = [role: string, previousAdminRole: string, newAdminRole: string];
    interface OutputObject {
        role: string;
        previousAdminRole: string;
        newAdminRole: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoleGrantedEvent {
    type InputTuple = [role: BytesLike, account: AddressLike, sender: AddressLike];
    type OutputTuple = [role: string, account: string, sender: string];
    interface OutputObject {
        role: string;
        account: string;
        sender: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoleRevokedEvent {
    type InputTuple = [role: BytesLike, account: AddressLike, sender: AddressLike];
    type OutputTuple = [role: string, account: string, sender: string];
    interface OutputObject {
        role: string;
        account: string;
        sender: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TransferEvent {
    type InputTuple = [from: AddressLike, to: AddressLike, value: BigNumberish];
    type OutputTuple = [from: string, to: string, value: bigint];
    interface OutputObject {
        from: string;
        to: string;
        value: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TransferRestrictionUpdatedEvent {
    type InputTuple = [restricted: boolean];
    type OutputTuple = [restricted: boolean];
    interface OutputObject {
        restricted: boolean;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TransferWhitelistUpdatedEvent {
    type InputTuple = [account: AddressLike, whitelisted: boolean];
    type OutputTuple = [account: string, whitelisted: boolean];
    interface OutputObject {
        account: string;
        whitelisted: boolean;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export interface InterfoldToken extends BaseContract {
    connect(runner?: ContractRunner | null): InterfoldToken;
    waitForDeployment(): Promise<this>;
    interface: InterfoldTokenInterface;
    queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
    listeners(eventName?: string): Promise<Array<Listener>>;
    removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
    CLOCK_MODE: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    DEFAULT_ADMIN_ROLE: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    DOMAIN_SEPARATOR: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    MAX_SUPPLY: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    MINTER_ROLE: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    WHITELIST_ROLE: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    acceptOwnership: TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    allowance: TypedContractMethod<[
        owner: AddressLike,
        spender: AddressLike
    ], [
        bigint
    ], 'view'>;
    approve: TypedContractMethod<[
        spender: AddressLike,
        value: BigNumberish
    ], [
        boolean
    ], 'nonpayable'>;
    balanceOf: TypedContractMethod<[
        account: AddressLike
    ], [
        bigint
    ], 'view'>;
    batchMintAllocations: TypedContractMethod<[
        recipients: AddressLike[],
        amounts: BigNumberish[],
        allocations: string[]
    ], [
        void
    ], 'nonpayable'>;
    checkpoints: TypedContractMethod<[
        account: AddressLike,
        pos: BigNumberish
    ], [
        Checkpoints.Checkpoint208StructOutput
    ], 'view'>;
    clock: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    decimals: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    delegate: TypedContractMethod<[
        delegatee: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    delegateBySig: TypedContractMethod<[
        delegatee: AddressLike,
        nonce: BigNumberish,
        expiry: BigNumberish,
        v: BigNumberish,
        r: BytesLike,
        s: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    delegates: TypedContractMethod<[
        account: AddressLike
    ], [
        string
    ], 'view'>;
    disableTransferRestrictions: TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    eip712Domain: TypedContractMethod<[
    ], [
        [string, string, string, bigint, string, string, bigint[]] & {
            fields: string;
            name: string;
            version: string;
            chainId: bigint;
            verifyingContract: string;
            salt: string;
            extensions: bigint[];
        }
    ], 'view'>;
    getPastTotalSupply: TypedContractMethod<[
        timepoint: BigNumberish
    ], [
        bigint
    ], 'view'>;
    getPastVotes: TypedContractMethod<[
        account: AddressLike,
        timepoint: BigNumberish
    ], [
        bigint
    ], 'view'>;
    getRoleAdmin: TypedContractMethod<[
        role: BytesLike
    ], [
        string
    ], 'view'>;
    getVotes: TypedContractMethod<[
        account: AddressLike
    ], [
        bigint
    ], 'view'>;
    grantRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    hasRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        boolean
    ], 'view'>;
    mintAllocation: TypedContractMethod<[
        recipient: AddressLike,
        amount: BigNumberish,
        allocation: string
    ], [
        void
    ], 'nonpayable'>;
    name: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    nonces: TypedContractMethod<[
        owner: AddressLike
    ], [
        bigint
    ], 'view'>;
    numCheckpoints: TypedContractMethod<[
        account: AddressLike
    ], [
        bigint
    ], 'view'>;
    owner: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    pendingOwner: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    permit: TypedContractMethod<[
        owner: AddressLike,
        spender: AddressLike,
        value: BigNumberish,
        deadline: BigNumberish,
        v: BigNumberish,
        r: BytesLike,
        s: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    renounceOwnership: TypedContractMethod<[
    ], [
        void
    ], 'view'>;
    renounceRole: TypedContractMethod<[
        role: BytesLike,
        callerConfirmation: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    revokeRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    supportsInterface: TypedContractMethod<[
        interfaceId: BytesLike
    ], [
        boolean
    ], 'view'>;
    symbol: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    toggleTransferWhitelist: TypedContractMethod<[
        account: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    totalMinted: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    totalSupply: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    transfer: TypedContractMethod<[
        to: AddressLike,
        value: BigNumberish
    ], [
        boolean
    ], 'nonpayable'>;
    transferFrom: TypedContractMethod<[
        from: AddressLike,
        to: AddressLike,
        value: BigNumberish
    ], [
        boolean
    ], 'nonpayable'>;
    transferOwnership: TypedContractMethod<[
        newOwner: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    transferWhitelisted: TypedContractMethod<[
        account: AddressLike
    ], [
        boolean
    ], 'view'>;
    transfersRestricted: TypedContractMethod<[
    ], [
        boolean
    ], 'view'>;
    whitelistContracts: TypedContractMethod<[
        bondingManager: AddressLike,
        vestingEscrow: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getFunction(nameOrSignature: 'CLOCK_MODE'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'DEFAULT_ADMIN_ROLE'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'DOMAIN_SEPARATOR'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'MAX_SUPPLY'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'MINTER_ROLE'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'WHITELIST_ROLE'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'acceptOwnership'): TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'allowance'): TypedContractMethod<[
        owner: AddressLike,
        spender: AddressLike
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'approve'): TypedContractMethod<[
        spender: AddressLike,
        value: BigNumberish
    ], [
        boolean
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'balanceOf'): TypedContractMethod<[
        account: AddressLike
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'batchMintAllocations'): TypedContractMethod<[
        recipients: AddressLike[],
        amounts: BigNumberish[],
        allocations: string[]
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'checkpoints'): TypedContractMethod<[
        account: AddressLike,
        pos: BigNumberish
    ], [
        Checkpoints.Checkpoint208StructOutput
    ], 'view'>;
    getFunction(nameOrSignature: 'clock'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'decimals'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'delegate'): TypedContractMethod<[
        delegatee: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'delegateBySig'): TypedContractMethod<[
        delegatee: AddressLike,
        nonce: BigNumberish,
        expiry: BigNumberish,
        v: BigNumberish,
        r: BytesLike,
        s: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'delegates'): TypedContractMethod<[
        account: AddressLike
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'disableTransferRestrictions'): TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'eip712Domain'): TypedContractMethod<[
    ], [
        [string, string, string, bigint, string, string, bigint[]] & {
            fields: string;
            name: string;
            version: string;
            chainId: bigint;
            verifyingContract: string;
            salt: string;
            extensions: bigint[];
        }
    ], 'view'>;
    getFunction(nameOrSignature: 'getPastTotalSupply'): TypedContractMethod<[
        timepoint: BigNumberish
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'getPastVotes'): TypedContractMethod<[
        account: AddressLike,
        timepoint: BigNumberish
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'getRoleAdmin'): TypedContractMethod<[
        role: BytesLike
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'getVotes'): TypedContractMethod<[
        account: AddressLike
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'grantRole'): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'hasRole'): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'mintAllocation'): TypedContractMethod<[
        recipient: AddressLike,
        amount: BigNumberish,
        allocation: string
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'name'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'nonces'): TypedContractMethod<[
        owner: AddressLike
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'numCheckpoints'): TypedContractMethod<[
        account: AddressLike
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'owner'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'pendingOwner'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'permit'): TypedContractMethod<[
        owner: AddressLike,
        spender: AddressLike,
        value: BigNumberish,
        deadline: BigNumberish,
        v: BigNumberish,
        r: BytesLike,
        s: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'renounceOwnership'): TypedContractMethod<[
    ], [
        void
    ], 'view'>;
    getFunction(nameOrSignature: 'renounceRole'): TypedContractMethod<[
        role: BytesLike,
        callerConfirmation: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'revokeRole'): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'supportsInterface'): TypedContractMethod<[
        interfaceId: BytesLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'symbol'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'toggleTransferWhitelist'): TypedContractMethod<[
        account: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'totalMinted'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'totalSupply'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'transfer'): TypedContractMethod<[
        to: AddressLike,
        value: BigNumberish
    ], [
        boolean
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'transferFrom'): TypedContractMethod<[
        from: AddressLike,
        to: AddressLike,
        value: BigNumberish
    ], [
        boolean
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'transferOwnership'): TypedContractMethod<[
        newOwner: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'transferWhitelisted'): TypedContractMethod<[
        account: AddressLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'transfersRestricted'): TypedContractMethod<[
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'whitelistContracts'): TypedContractMethod<[
        bondingManager: AddressLike,
        vestingEscrow: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getEvent(key: 'AllocationMinted'): TypedContractEvent<AllocationMintedEvent.InputTuple, AllocationMintedEvent.OutputTuple, AllocationMintedEvent.OutputObject>;
    getEvent(key: 'Approval'): TypedContractEvent<ApprovalEvent.InputTuple, ApprovalEvent.OutputTuple, ApprovalEvent.OutputObject>;
    getEvent(key: 'DelegateChanged'): TypedContractEvent<DelegateChangedEvent.InputTuple, DelegateChangedEvent.OutputTuple, DelegateChangedEvent.OutputObject>;
    getEvent(key: 'DelegateVotesChanged'): TypedContractEvent<DelegateVotesChangedEvent.InputTuple, DelegateVotesChangedEvent.OutputTuple, DelegateVotesChangedEvent.OutputObject>;
    getEvent(key: 'EIP712DomainChanged'): TypedContractEvent<EIP712DomainChangedEvent.InputTuple, EIP712DomainChangedEvent.OutputTuple, EIP712DomainChangedEvent.OutputObject>;
    getEvent(key: 'OwnershipTransferStarted'): TypedContractEvent<OwnershipTransferStartedEvent.InputTuple, OwnershipTransferStartedEvent.OutputTuple, OwnershipTransferStartedEvent.OutputObject>;
    getEvent(key: 'OwnershipTransferred'): TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
    getEvent(key: 'RoleAdminChanged'): TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
    getEvent(key: 'RoleGranted'): TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
    getEvent(key: 'RoleRevoked'): TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
    getEvent(key: 'Transfer'): TypedContractEvent<TransferEvent.InputTuple, TransferEvent.OutputTuple, TransferEvent.OutputObject>;
    getEvent(key: 'TransferRestrictionUpdated'): TypedContractEvent<TransferRestrictionUpdatedEvent.InputTuple, TransferRestrictionUpdatedEvent.OutputTuple, TransferRestrictionUpdatedEvent.OutputObject>;
    getEvent(key: 'TransferWhitelistUpdated'): TypedContractEvent<TransferWhitelistUpdatedEvent.InputTuple, TransferWhitelistUpdatedEvent.OutputTuple, TransferWhitelistUpdatedEvent.OutputObject>;
    filters: {
        'AllocationMinted(address,uint256,string)': TypedContractEvent<AllocationMintedEvent.InputTuple, AllocationMintedEvent.OutputTuple, AllocationMintedEvent.OutputObject>;
        AllocationMinted: TypedContractEvent<AllocationMintedEvent.InputTuple, AllocationMintedEvent.OutputTuple, AllocationMintedEvent.OutputObject>;
        'Approval(address,address,uint256)': TypedContractEvent<ApprovalEvent.InputTuple, ApprovalEvent.OutputTuple, ApprovalEvent.OutputObject>;
        Approval: TypedContractEvent<ApprovalEvent.InputTuple, ApprovalEvent.OutputTuple, ApprovalEvent.OutputObject>;
        'DelegateChanged(address,address,address)': TypedContractEvent<DelegateChangedEvent.InputTuple, DelegateChangedEvent.OutputTuple, DelegateChangedEvent.OutputObject>;
        DelegateChanged: TypedContractEvent<DelegateChangedEvent.InputTuple, DelegateChangedEvent.OutputTuple, DelegateChangedEvent.OutputObject>;
        'DelegateVotesChanged(address,uint256,uint256)': TypedContractEvent<DelegateVotesChangedEvent.InputTuple, DelegateVotesChangedEvent.OutputTuple, DelegateVotesChangedEvent.OutputObject>;
        DelegateVotesChanged: TypedContractEvent<DelegateVotesChangedEvent.InputTuple, DelegateVotesChangedEvent.OutputTuple, DelegateVotesChangedEvent.OutputObject>;
        'EIP712DomainChanged()': TypedContractEvent<EIP712DomainChangedEvent.InputTuple, EIP712DomainChangedEvent.OutputTuple, EIP712DomainChangedEvent.OutputObject>;
        EIP712DomainChanged: TypedContractEvent<EIP712DomainChangedEvent.InputTuple, EIP712DomainChangedEvent.OutputTuple, EIP712DomainChangedEvent.OutputObject>;
        'OwnershipTransferStarted(address,address)': TypedContractEvent<OwnershipTransferStartedEvent.InputTuple, OwnershipTransferStartedEvent.OutputTuple, OwnershipTransferStartedEvent.OutputObject>;
        OwnershipTransferStarted: TypedContractEvent<OwnershipTransferStartedEvent.InputTuple, OwnershipTransferStartedEvent.OutputTuple, OwnershipTransferStartedEvent.OutputObject>;
        'OwnershipTransferred(address,address)': TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
        OwnershipTransferred: TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
        'RoleAdminChanged(bytes32,bytes32,bytes32)': TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
        RoleAdminChanged: TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
        'RoleGranted(bytes32,address,address)': TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
        RoleGranted: TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
        'RoleRevoked(bytes32,address,address)': TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
        RoleRevoked: TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
        'Transfer(address,address,uint256)': TypedContractEvent<TransferEvent.InputTuple, TransferEvent.OutputTuple, TransferEvent.OutputObject>;
        Transfer: TypedContractEvent<TransferEvent.InputTuple, TransferEvent.OutputTuple, TransferEvent.OutputObject>;
        'TransferRestrictionUpdated(bool)': TypedContractEvent<TransferRestrictionUpdatedEvent.InputTuple, TransferRestrictionUpdatedEvent.OutputTuple, TransferRestrictionUpdatedEvent.OutputObject>;
        TransferRestrictionUpdated: TypedContractEvent<TransferRestrictionUpdatedEvent.InputTuple, TransferRestrictionUpdatedEvent.OutputTuple, TransferRestrictionUpdatedEvent.OutputObject>;
        'TransferWhitelistUpdated(address,bool)': TypedContractEvent<TransferWhitelistUpdatedEvent.InputTuple, TransferWhitelistUpdatedEvent.OutputTuple, TransferWhitelistUpdatedEvent.OutputObject>;
        TransferWhitelistUpdated: TypedContractEvent<TransferWhitelistUpdatedEvent.InputTuple, TransferWhitelistUpdatedEvent.OutputTuple, TransferWhitelistUpdatedEvent.OutputObject>;
    };
}
//# sourceMappingURL=InterfoldToken.d.ts.map