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 IDCAPermissionManager {
    type PermissionSetStruct = {
        operator: PromiseOrValue<string>;
        permissions: PromiseOrValue<BigNumberish>[];
    };
    type PermissionSetStructOutput = [string, number[]] & {
        operator: string;
        permissions: number[];
    };
    type PositionPermissionsStruct = {
        tokenId: PromiseOrValue<BigNumberish>;
        permissionSets: IDCAPermissionManager.PermissionSetStruct[];
    };
    type PositionPermissionsStructOutput = [BigNumber, IDCAPermissionManager.PermissionSetStructOutput[]] & {
        tokenId: BigNumber;
        permissionSets: IDCAPermissionManager.PermissionSetStructOutput[];
    };
}
export interface MeanFinancePermissionManagerInterface extends utils.Interface {
    functions: {
        'DOMAIN_SEPARATOR()': FunctionFragment;
        'MULTI_PERMISSION_PERMIT_TYPEHASH()': FunctionFragment;
        'PERMISSION_PERMIT_TYPEHASH()': FunctionFragment;
        'PERMISSION_SET_TYPEHASH()': FunctionFragment;
        'PERMIT_TYPEHASH()': FunctionFragment;
        'POSITION_PERMISSIONS_TYPEHASH()': FunctionFragment;
        'acceptPendingGovernor()': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'burn(uint256)': FunctionFragment;
        'getApproved(uint256)': FunctionFragment;
        'governor()': FunctionFragment;
        'hasPermission(uint256,address,uint8)': FunctionFragment;
        'hasPermissions(uint256,address,uint8[])': FunctionFragment;
        'hub()': FunctionFragment;
        'isApprovedForAll(address,address)': FunctionFragment;
        'isGovernor(address)': FunctionFragment;
        'isPendingGovernor(address)': FunctionFragment;
        'lastOwnershipChange(uint256)': FunctionFragment;
        'mint(uint256,address,(address,uint8[])[])': FunctionFragment;
        'modify(uint256,(address,uint8[])[])': FunctionFragment;
        'modifyMany((uint256,(address,uint8[])[])[])': FunctionFragment;
        'multiPermissionPermit((uint256,(address,uint8[])[])[],uint256,uint8,bytes32,bytes32)': FunctionFragment;
        'name()': FunctionFragment;
        'nftDescriptor()': FunctionFragment;
        'nonces(address)': FunctionFragment;
        'ownerOf(uint256)': FunctionFragment;
        'pendingGovernor()': FunctionFragment;
        'permissionPermit((address,uint8[])[],uint256,uint256,uint8,bytes32,bytes32)': FunctionFragment;
        'permit(address,uint256,uint256,uint8,bytes32,bytes32)': FunctionFragment;
        'safeTransferFrom(address,address,uint256)': FunctionFragment;
        'safeTransferFrom(address,address,uint256,bytes)': FunctionFragment;
        'setApprovalForAll(address,bool)': FunctionFragment;
        'setHub(address)': FunctionFragment;
        'setNFTDescriptor(address)': FunctionFragment;
        'setPendingGovernor(address)': FunctionFragment;
        'supportsInterface(bytes4)': FunctionFragment;
        'symbol()': FunctionFragment;
        'tokenPermissions(uint256,address)': FunctionFragment;
        'tokenURI(uint256)': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'DOMAIN_SEPARATOR' | 'MULTI_PERMISSION_PERMIT_TYPEHASH' | 'PERMISSION_PERMIT_TYPEHASH' | 'PERMISSION_SET_TYPEHASH' | 'PERMIT_TYPEHASH' | 'POSITION_PERMISSIONS_TYPEHASH' | 'acceptPendingGovernor' | 'approve' | 'balanceOf' | 'burn' | 'getApproved' | 'governor' | 'hasPermission' | 'hasPermissions' | 'hub' | 'isApprovedForAll' | 'isGovernor' | 'isPendingGovernor' | 'lastOwnershipChange' | 'mint' | 'modify' | 'modifyMany' | 'multiPermissionPermit' | 'name' | 'nftDescriptor' | 'nonces' | 'ownerOf' | 'pendingGovernor' | 'permissionPermit' | 'permit' | 'safeTransferFrom(address,address,uint256)' | 'safeTransferFrom(address,address,uint256,bytes)' | 'setApprovalForAll' | 'setHub' | 'setNFTDescriptor' | 'setPendingGovernor' | 'supportsInterface' | 'symbol' | 'tokenPermissions' | 'tokenURI' | 'totalSupply' | 'transferFrom'): FunctionFragment;
    encodeFunctionData(functionFragment: 'DOMAIN_SEPARATOR', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MULTI_PERMISSION_PERMIT_TYPEHASH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'PERMISSION_PERMIT_TYPEHASH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'PERMISSION_SET_TYPEHASH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'PERMIT_TYPEHASH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'POSITION_PERMISSIONS_TYPEHASH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'acceptPendingGovernor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'burn', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getApproved', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'governor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'hasPermission', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'hasPermissions', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'hub', values?: undefined): string;
    encodeFunctionData(functionFragment: 'isApprovedForAll', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isGovernor', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isPendingGovernor', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'lastOwnershipChange', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'mint', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>, IDCAPermissionManager.PermissionSetStruct[]]): string;
    encodeFunctionData(functionFragment: 'modify', values: [PromiseOrValue<BigNumberish>, IDCAPermissionManager.PermissionSetStruct[]]): string;
    encodeFunctionData(functionFragment: 'modifyMany', values: [IDCAPermissionManager.PositionPermissionsStruct[]]): string;
    encodeFunctionData(functionFragment: 'multiPermissionPermit', values: [
        IDCAPermissionManager.PositionPermissionsStruct[],
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'nftDescriptor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'nonces', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'ownerOf', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'pendingGovernor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'permissionPermit', values: [
        IDCAPermissionManager.PermissionSetStruct[],
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: 'permit', values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: 'safeTransferFrom(address,address,uint256)', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'safeTransferFrom(address,address,uint256,bytes)', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'setApprovalForAll', values: [PromiseOrValue<string>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setHub', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setNFTDescriptor', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setPendingGovernor', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'supportsInterface', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'symbol', values?: undefined): string;
    encodeFunctionData(functionFragment: 'tokenPermissions', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'tokenURI', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transferFrom', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'DOMAIN_SEPARATOR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MULTI_PERMISSION_PERMIT_TYPEHASH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'PERMISSION_PERMIT_TYPEHASH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'PERMISSION_SET_TYPEHASH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'PERMIT_TYPEHASH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'POSITION_PERMISSIONS_TYPEHASH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'acceptPendingGovernor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'burn', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getApproved', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'governor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasPermission', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasPermissions', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hub', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isApprovedForAll', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isGovernor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isPendingGovernor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lastOwnershipChange', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mint', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'modify', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'modifyMany', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'multiPermissionPermit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nftDescriptor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nonces', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ownerOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendingGovernor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'permissionPermit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'permit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'safeTransferFrom(address,address,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'safeTransferFrom(address,address,uint256,bytes)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setApprovalForAll', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setHub', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setNFTDescriptor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setPendingGovernor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'supportsInterface', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'tokenPermissions', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'tokenURI', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result;
    events: {
        'Approval(address,address,uint256)': EventFragment;
        'ApprovalForAll(address,address,bool)': EventFragment;
        'Modified(uint256,tuple[])': EventFragment;
        'NFTDescriptorSet(address)': EventFragment;
        'PendingGovernorAccepted()': EventFragment;
        'PendingGovernorSet(address)': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ApprovalForAll'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Modified'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NFTDescriptorSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PendingGovernorAccepted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PendingGovernorSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
}
export interface ApprovalEventObject {
    owner: string;
    approved: string;
    tokenId: BigNumber;
}
export declare type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>;
export declare type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
export interface ApprovalForAllEventObject {
    owner: string;
    operator: string;
    approved: boolean;
}
export declare type ApprovalForAllEvent = TypedEvent<[string, string, boolean], ApprovalForAllEventObject>;
export declare type ApprovalForAllEventFilter = TypedEventFilter<ApprovalForAllEvent>;
export interface ModifiedEventObject {
    tokenId: BigNumber;
    permissions: IDCAPermissionManager.PermissionSetStructOutput[];
}
export declare type ModifiedEvent = TypedEvent<[
    BigNumber,
    IDCAPermissionManager.PermissionSetStructOutput[]
], ModifiedEventObject>;
export declare type ModifiedEventFilter = TypedEventFilter<ModifiedEvent>;
export interface NFTDescriptorSetEventObject {
    descriptor: string;
}
export declare type NFTDescriptorSetEvent = TypedEvent<[string], NFTDescriptorSetEventObject>;
export declare type NFTDescriptorSetEventFilter = TypedEventFilter<NFTDescriptorSetEvent>;
export interface PendingGovernorAcceptedEventObject {
}
export declare type PendingGovernorAcceptedEvent = TypedEvent<[], PendingGovernorAcceptedEventObject>;
export declare type PendingGovernorAcceptedEventFilter = TypedEventFilter<PendingGovernorAcceptedEvent>;
export interface PendingGovernorSetEventObject {
    pendingGovernor: string;
}
export declare type PendingGovernorSetEvent = TypedEvent<[string], PendingGovernorSetEventObject>;
export declare type PendingGovernorSetEventFilter = TypedEventFilter<PendingGovernorSetEvent>;
export interface TransferEventObject {
    from: string;
    to: string;
    tokenId: BigNumber;
}
export declare type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>;
export declare type TransferEventFilter = TypedEventFilter<TransferEvent>;
export interface MeanFinancePermissionManager extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: MeanFinancePermissionManagerInterface;
    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: {
        DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>;
        MULTI_PERMISSION_PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<[string]>;
        PERMISSION_PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<[string]>;
        PERMISSION_SET_TYPEHASH(overrides?: CallOverrides): Promise<[string]>;
        PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<[string]>;
        POSITION_PERMISSIONS_TYPEHASH(overrides?: CallOverrides): Promise<[string]>;
        acceptPendingGovernor(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        burn(_id: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getApproved(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        governor(overrides?: CallOverrides): Promise<[string]>;
        hasPermission(_id: PromiseOrValue<BigNumberish>, _address: PromiseOrValue<string>, _permission: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[boolean]>;
        hasPermissions(_id: PromiseOrValue<BigNumberish>, _address: PromiseOrValue<string>, _permissions: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<[boolean[]] & {
            _hasPermissions: boolean[];
        }>;
        hub(overrides?: CallOverrides): Promise<[string]>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isGovernor(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean] & {
            _isGovernor: boolean;
        }>;
        isPendingGovernor(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean] & {
            _isPendingGovernor: boolean;
        }>;
        lastOwnershipChange(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        mint(_id: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _permissions: IDCAPermissionManager.PermissionSetStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        modify(_id: PromiseOrValue<BigNumberish>, _permissions: IDCAPermissionManager.PermissionSetStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        modifyMany(_permissions: IDCAPermissionManager.PositionPermissionsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        multiPermissionPermit(_permissions: IDCAPermissionManager.PositionPermissionsStruct[], _deadline: PromiseOrValue<BigNumberish>, _v: PromiseOrValue<BigNumberish>, _r: PromiseOrValue<BytesLike>, _s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        name(overrides?: CallOverrides): Promise<[string]>;
        nftDescriptor(overrides?: CallOverrides): Promise<[string]>;
        nonces(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        pendingGovernor(overrides?: CallOverrides): Promise<[string]>;
        permissionPermit(_permissions: IDCAPermissionManager.PermissionSetStruct[], _tokenId: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, _v: PromiseOrValue<BigNumberish>, _r: PromiseOrValue<BytesLike>, _s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        permit(_spender: PromiseOrValue<string>, _tokenId: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, _v: PromiseOrValue<BigNumberish>, _r: PromiseOrValue<BytesLike>, _s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setHub(_hub: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setNFTDescriptor(_descriptor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setPendingGovernor(__pendingGovernor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        tokenPermissions(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[number, BigNumber] & {
            permissions: number;
            lastUpdated: BigNumber;
        }>;
        tokenURI(_tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<string>;
    MULTI_PERMISSION_PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<string>;
    PERMISSION_PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<string>;
    PERMISSION_SET_TYPEHASH(overrides?: CallOverrides): Promise<string>;
    PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<string>;
    POSITION_PERMISSIONS_TYPEHASH(overrides?: CallOverrides): Promise<string>;
    acceptPendingGovernor(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    burn(_id: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getApproved(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    governor(overrides?: CallOverrides): Promise<string>;
    hasPermission(_id: PromiseOrValue<BigNumberish>, _address: PromiseOrValue<string>, _permission: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
    hasPermissions(_id: PromiseOrValue<BigNumberish>, _address: PromiseOrValue<string>, _permissions: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<boolean[]>;
    hub(overrides?: CallOverrides): Promise<string>;
    isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isGovernor(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isPendingGovernor(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    lastOwnershipChange(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    mint(_id: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _permissions: IDCAPermissionManager.PermissionSetStruct[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    modify(_id: PromiseOrValue<BigNumberish>, _permissions: IDCAPermissionManager.PermissionSetStruct[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    modifyMany(_permissions: IDCAPermissionManager.PositionPermissionsStruct[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    multiPermissionPermit(_permissions: IDCAPermissionManager.PositionPermissionsStruct[], _deadline: PromiseOrValue<BigNumberish>, _v: PromiseOrValue<BigNumberish>, _r: PromiseOrValue<BytesLike>, _s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    name(overrides?: CallOverrides): Promise<string>;
    nftDescriptor(overrides?: CallOverrides): Promise<string>;
    nonces(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    pendingGovernor(overrides?: CallOverrides): Promise<string>;
    permissionPermit(_permissions: IDCAPermissionManager.PermissionSetStruct[], _tokenId: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, _v: PromiseOrValue<BigNumberish>, _r: PromiseOrValue<BytesLike>, _s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    permit(_spender: PromiseOrValue<string>, _tokenId: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, _v: PromiseOrValue<BigNumberish>, _r: PromiseOrValue<BytesLike>, _s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setHub(_hub: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setNFTDescriptor(_descriptor: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setPendingGovernor(__pendingGovernor: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    symbol(overrides?: CallOverrides): Promise<string>;
    tokenPermissions(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[number, BigNumber] & {
        permissions: number;
        lastUpdated: BigNumber;
    }>;
    tokenURI(_tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<string>;
        MULTI_PERMISSION_PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<string>;
        PERMISSION_PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<string>;
        PERMISSION_SET_TYPEHASH(overrides?: CallOverrides): Promise<string>;
        PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<string>;
        POSITION_PERMISSIONS_TYPEHASH(overrides?: CallOverrides): Promise<string>;
        acceptPendingGovernor(overrides?: CallOverrides): Promise<void>;
        approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        burn(_id: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        getApproved(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        governor(overrides?: CallOverrides): Promise<string>;
        hasPermission(_id: PromiseOrValue<BigNumberish>, _address: PromiseOrValue<string>, _permission: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        hasPermissions(_id: PromiseOrValue<BigNumberish>, _address: PromiseOrValue<string>, _permissions: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<boolean[]>;
        hub(overrides?: CallOverrides): Promise<string>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isGovernor(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isPendingGovernor(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        lastOwnershipChange(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        mint(_id: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _permissions: IDCAPermissionManager.PermissionSetStruct[], overrides?: CallOverrides): Promise<void>;
        modify(_id: PromiseOrValue<BigNumberish>, _permissions: IDCAPermissionManager.PermissionSetStruct[], overrides?: CallOverrides): Promise<void>;
        modifyMany(_permissions: IDCAPermissionManager.PositionPermissionsStruct[], overrides?: CallOverrides): Promise<void>;
        multiPermissionPermit(_permissions: IDCAPermissionManager.PositionPermissionsStruct[], _deadline: PromiseOrValue<BigNumberish>, _v: PromiseOrValue<BigNumberish>, _r: PromiseOrValue<BytesLike>, _s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        name(overrides?: CallOverrides): Promise<string>;
        nftDescriptor(overrides?: CallOverrides): Promise<string>;
        nonces(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        pendingGovernor(overrides?: CallOverrides): Promise<string>;
        permissionPermit(_permissions: IDCAPermissionManager.PermissionSetStruct[], _tokenId: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, _v: PromiseOrValue<BigNumberish>, _r: PromiseOrValue<BytesLike>, _s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        permit(_spender: PromiseOrValue<string>, _tokenId: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, _v: PromiseOrValue<BigNumberish>, _r: PromiseOrValue<BytesLike>, _s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setHub(_hub: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setNFTDescriptor(_descriptor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setPendingGovernor(__pendingGovernor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        symbol(overrides?: CallOverrides): Promise<string>;
        tokenPermissions(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[number, BigNumber] & {
            permissions: number;
            lastUpdated: BigNumber;
        }>;
        tokenURI(_tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'Approval(address,address,uint256)'(owner?: PromiseOrValue<string> | null, approved?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): ApprovalEventFilter;
        Approval(owner?: PromiseOrValue<string> | null, approved?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): ApprovalEventFilter;
        'ApprovalForAll(address,address,bool)'(owner?: PromiseOrValue<string> | null, operator?: PromiseOrValue<string> | null, approved?: null): ApprovalForAllEventFilter;
        ApprovalForAll(owner?: PromiseOrValue<string> | null, operator?: PromiseOrValue<string> | null, approved?: null): ApprovalForAllEventFilter;
        'Modified(uint256,tuple[])'(tokenId?: null, permissions?: null): ModifiedEventFilter;
        Modified(tokenId?: null, permissions?: null): ModifiedEventFilter;
        'NFTDescriptorSet(address)'(descriptor?: null): NFTDescriptorSetEventFilter;
        NFTDescriptorSet(descriptor?: null): NFTDescriptorSetEventFilter;
        'PendingGovernorAccepted()'(): PendingGovernorAcceptedEventFilter;
        PendingGovernorAccepted(): PendingGovernorAcceptedEventFilter;
        'PendingGovernorSet(address)'(pendingGovernor?: null): PendingGovernorSetEventFilter;
        PendingGovernorSet(pendingGovernor?: null): PendingGovernorSetEventFilter;
        'Transfer(address,address,uint256)'(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): TransferEventFilter;
        Transfer(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): TransferEventFilter;
    };
    estimateGas: {
        DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<BigNumber>;
        MULTI_PERMISSION_PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<BigNumber>;
        PERMISSION_PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<BigNumber>;
        PERMISSION_SET_TYPEHASH(overrides?: CallOverrides): Promise<BigNumber>;
        PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<BigNumber>;
        POSITION_PERMISSIONS_TYPEHASH(overrides?: CallOverrides): Promise<BigNumber>;
        acceptPendingGovernor(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        burn(_id: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getApproved(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        governor(overrides?: CallOverrides): Promise<BigNumber>;
        hasPermission(_id: PromiseOrValue<BigNumberish>, _address: PromiseOrValue<string>, _permission: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        hasPermissions(_id: PromiseOrValue<BigNumberish>, _address: PromiseOrValue<string>, _permissions: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<BigNumber>;
        hub(overrides?: CallOverrides): Promise<BigNumber>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isGovernor(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isPendingGovernor(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        lastOwnershipChange(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        mint(_id: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _permissions: IDCAPermissionManager.PermissionSetStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        modify(_id: PromiseOrValue<BigNumberish>, _permissions: IDCAPermissionManager.PermissionSetStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        modifyMany(_permissions: IDCAPermissionManager.PositionPermissionsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        multiPermissionPermit(_permissions: IDCAPermissionManager.PositionPermissionsStruct[], _deadline: PromiseOrValue<BigNumberish>, _v: PromiseOrValue<BigNumberish>, _r: PromiseOrValue<BytesLike>, _s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        nftDescriptor(overrides?: CallOverrides): Promise<BigNumber>;
        nonces(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        pendingGovernor(overrides?: CallOverrides): Promise<BigNumber>;
        permissionPermit(_permissions: IDCAPermissionManager.PermissionSetStruct[], _tokenId: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, _v: PromiseOrValue<BigNumberish>, _r: PromiseOrValue<BytesLike>, _s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        permit(_spender: PromiseOrValue<string>, _tokenId: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, _v: PromiseOrValue<BigNumberish>, _r: PromiseOrValue<BytesLike>, _s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setHub(_hub: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setNFTDescriptor(_descriptor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setPendingGovernor(__pendingGovernor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        tokenPermissions(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        tokenURI(_tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MULTI_PERMISSION_PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        PERMISSION_PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        PERMISSION_SET_TYPEHASH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        POSITION_PERMISSIONS_TYPEHASH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        acceptPendingGovernor(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        burn(_id: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getApproved(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        governor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        hasPermission(_id: PromiseOrValue<BigNumberish>, _address: PromiseOrValue<string>, _permission: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        hasPermissions(_id: PromiseOrValue<BigNumberish>, _address: PromiseOrValue<string>, _permissions: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        hub(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isGovernor(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isPendingGovernor(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lastOwnershipChange(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mint(_id: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, _permissions: IDCAPermissionManager.PermissionSetStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        modify(_id: PromiseOrValue<BigNumberish>, _permissions: IDCAPermissionManager.PermissionSetStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        modifyMany(_permissions: IDCAPermissionManager.PositionPermissionsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        multiPermissionPermit(_permissions: IDCAPermissionManager.PositionPermissionsStruct[], _deadline: PromiseOrValue<BigNumberish>, _v: PromiseOrValue<BigNumberish>, _r: PromiseOrValue<BytesLike>, _s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        nftDescriptor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        nonces(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingGovernor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        permissionPermit(_permissions: IDCAPermissionManager.PermissionSetStruct[], _tokenId: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, _v: PromiseOrValue<BigNumberish>, _r: PromiseOrValue<BytesLike>, _s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        permit(_spender: PromiseOrValue<string>, _tokenId: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, _v: PromiseOrValue<BigNumberish>, _r: PromiseOrValue<BytesLike>, _s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setHub(_hub: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setNFTDescriptor(_descriptor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setPendingGovernor(__pendingGovernor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenPermissions(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenURI(_tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
