import { Signer, ContractFactory, BigNumberish, Overrides } from "ethers";
import type { Provider, TransactionRequest } from "@ethersproject/providers";
import type { PromiseOrValue } from "../common";
import type { QueryDemo, QueryDemoInterface } from "../QueryDemo";
declare type QueryDemoConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
export declare class QueryDemo__factory extends ContractFactory {
    constructor(...args: QueryDemoConstructorParams);
    deploy(_owner: PromiseOrValue<string>, _wormhole: PromiseOrValue<string>, _myChainID: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<QueryDemo>;
    getDeployTransaction(_owner: PromiseOrValue<string>, _wormhole: PromiseOrValue<string>, _myChainID: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): TransactionRequest;
    attach(address: string): QueryDemo;
    connect(signer: Signer): QueryDemo__factory;
    static readonly bytecode = " ";
    static readonly abi: readonly [{
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "_owner";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "_wormhole";
            readonly type: "address";
        }, {
            readonly internalType: "uint16";
            readonly name: "_myChainID";
            readonly type: "uint16";
        }];
        readonly stateMutability: "nonpayable";
        readonly type: "constructor";
    }, {
        readonly inputs: readonly [];
        readonly name: "ChainIdMismatch";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "EmptyWormholeAddress";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "InvalidChainId";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "InvalidContractAddress";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "InvalidForeignChainID";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "InvalidFunctionSignature";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "InvalidOwner";
        readonly type: "error";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "received";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "expected";
            readonly type: "uint256";
        }];
        readonly name: "InvalidPayloadLength";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "InvalidResponseVersion";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "InvalidWormholeAddress";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "NumberOfResponsesMismatch";
        readonly type: "error";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "offset";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "length";
            readonly type: "uint256";
        }];
        readonly name: "OutOfBounds";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "RequestTypeMismatch";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "StaleBlockNum";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "StaleBlockTime";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "UnexpectedNumberOfResults";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "UnexpectedResultLength";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "UnexpectedResultMismatch";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "UnsupportedQueryType";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "VersionMismatch";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "ZeroQueries";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "QT_ETH_CALL";
        readonly outputs: readonly [{
            readonly internalType: "uint8";
            readonly name: "";
            readonly type: "uint8";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "QT_ETH_CALL_BY_TIMESTAMP";
        readonly outputs: readonly [{
            readonly internalType: "uint8";
            readonly name: "";
            readonly type: "uint8";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "QT_ETH_CALL_WITH_FINALITY";
        readonly outputs: readonly [{
            readonly internalType: "uint8";
            readonly name: "";
            readonly type: "uint8";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "QT_MAX";
        readonly outputs: readonly [{
            readonly internalType: "uint8";
            readonly name: "";
            readonly type: "uint8";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "VERSION";
        readonly outputs: readonly [{
            readonly internalType: "uint8";
            readonly name: "";
            readonly type: "uint8";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "getMyCounter";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "bytes";
            readonly name: "response";
            readonly type: "bytes";
        }];
        readonly name: "getResponseDigest";
        readonly outputs: readonly [{
            readonly internalType: "bytes32";
            readonly name: "";
            readonly type: "bytes32";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "bytes";
            readonly name: "response";
            readonly type: "bytes";
        }];
        readonly name: "getResponseHash";
        readonly outputs: readonly [{
            readonly internalType: "bytes32";
            readonly name: "";
            readonly type: "bytes32";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "getState";
        readonly outputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "uint16";
                readonly name: "chainID";
                readonly type: "uint16";
            }, {
                readonly internalType: "address";
                readonly name: "contractAddress";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "counter";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "blockNum";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "blockTime";
                readonly type: "uint256";
            }];
            readonly internalType: "struct QueryDemo.ChainEntry[]";
            readonly name: "";
            readonly type: "tuple[]";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "bytes";
            readonly name: "response";
            readonly type: "bytes";
        }, {
            readonly components: readonly [{
                readonly internalType: "bytes32";
                readonly name: "r";
                readonly type: "bytes32";
            }, {
                readonly internalType: "bytes32";
                readonly name: "s";
                readonly type: "bytes32";
            }, {
                readonly internalType: "uint8";
                readonly name: "v";
                readonly type: "uint8";
            }, {
                readonly internalType: "uint8";
                readonly name: "guardianIndex";
                readonly type: "uint8";
            }];
            readonly internalType: "struct IWormhole.Signature[]";
            readonly name: "signatures";
            readonly type: "tuple[]";
        }];
        readonly name: "parseAndVerifyQueryResponse";
        readonly outputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "uint8";
                readonly name: "version";
                readonly type: "uint8";
            }, {
                readonly internalType: "uint16";
                readonly name: "senderChainId";
                readonly type: "uint16";
            }, {
                readonly internalType: "uint32";
                readonly name: "nonce";
                readonly type: "uint32";
            }, {
                readonly internalType: "bytes";
                readonly name: "requestId";
                readonly type: "bytes";
            }, {
                readonly components: readonly [{
                    readonly internalType: "uint16";
                    readonly name: "chainId";
                    readonly type: "uint16";
                }, {
                    readonly internalType: "uint8";
                    readonly name: "queryType";
                    readonly type: "uint8";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "request";
                    readonly type: "bytes";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "response";
                    readonly type: "bytes";
                }];
                readonly internalType: "struct ParsedPerChainQueryResponse[]";
                readonly name: "responses";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct ParsedQueryResponse";
            readonly name: "r";
            readonly type: "tuple";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "uint16";
                readonly name: "chainId";
                readonly type: "uint16";
            }, {
                readonly internalType: "uint8";
                readonly name: "queryType";
                readonly type: "uint8";
            }, {
                readonly internalType: "bytes";
                readonly name: "request";
                readonly type: "bytes";
            }, {
                readonly internalType: "bytes";
                readonly name: "response";
                readonly type: "bytes";
            }];
            readonly internalType: "struct ParsedPerChainQueryResponse";
            readonly name: "pcr";
            readonly type: "tuple";
        }];
        readonly name: "parseEthCallByTimestampQueryResponse";
        readonly outputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "bytes";
                readonly name: "requestTargetBlockIdHint";
                readonly type: "bytes";
            }, {
                readonly internalType: "bytes";
                readonly name: "requestFollowingBlockIdHint";
                readonly type: "bytes";
            }, {
                readonly internalType: "uint64";
                readonly name: "requestTargetTimestamp";
                readonly type: "uint64";
            }, {
                readonly internalType: "uint64";
                readonly name: "targetBlockNum";
                readonly type: "uint64";
            }, {
                readonly internalType: "uint64";
                readonly name: "targetBlockTime";
                readonly type: "uint64";
            }, {
                readonly internalType: "uint64";
                readonly name: "followingBlockNum";
                readonly type: "uint64";
            }, {
                readonly internalType: "bytes32";
                readonly name: "targetBlockHash";
                readonly type: "bytes32";
            }, {
                readonly internalType: "bytes32";
                readonly name: "followingBlockHash";
                readonly type: "bytes32";
            }, {
                readonly internalType: "uint64";
                readonly name: "followingBlockTime";
                readonly type: "uint64";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "contractAddress";
                    readonly type: "address";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "callData";
                    readonly type: "bytes";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "result";
                    readonly type: "bytes";
                }];
                readonly internalType: "struct EthCallData[]";
                readonly name: "result";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct EthCallByTimestampQueryResponse";
            readonly name: "r";
            readonly type: "tuple";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "uint16";
                readonly name: "chainId";
                readonly type: "uint16";
            }, {
                readonly internalType: "uint8";
                readonly name: "queryType";
                readonly type: "uint8";
            }, {
                readonly internalType: "bytes";
                readonly name: "request";
                readonly type: "bytes";
            }, {
                readonly internalType: "bytes";
                readonly name: "response";
                readonly type: "bytes";
            }];
            readonly internalType: "struct ParsedPerChainQueryResponse";
            readonly name: "pcr";
            readonly type: "tuple";
        }];
        readonly name: "parseEthCallQueryResponse";
        readonly outputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "bytes";
                readonly name: "requestBlockId";
                readonly type: "bytes";
            }, {
                readonly internalType: "uint64";
                readonly name: "blockNum";
                readonly type: "uint64";
            }, {
                readonly internalType: "uint64";
                readonly name: "blockTime";
                readonly type: "uint64";
            }, {
                readonly internalType: "bytes32";
                readonly name: "blockHash";
                readonly type: "bytes32";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "contractAddress";
                    readonly type: "address";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "callData";
                    readonly type: "bytes";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "result";
                    readonly type: "bytes";
                }];
                readonly internalType: "struct EthCallData[]";
                readonly name: "result";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct EthCallQueryResponse";
            readonly name: "r";
            readonly type: "tuple";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "uint16";
                readonly name: "chainId";
                readonly type: "uint16";
            }, {
                readonly internalType: "uint8";
                readonly name: "queryType";
                readonly type: "uint8";
            }, {
                readonly internalType: "bytes";
                readonly name: "request";
                readonly type: "bytes";
            }, {
                readonly internalType: "bytes";
                readonly name: "response";
                readonly type: "bytes";
            }];
            readonly internalType: "struct ParsedPerChainQueryResponse";
            readonly name: "pcr";
            readonly type: "tuple";
        }];
        readonly name: "parseEthCallWithFinalityQueryResponse";
        readonly outputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "bytes";
                readonly name: "requestBlockId";
                readonly type: "bytes";
            }, {
                readonly internalType: "bytes";
                readonly name: "requestFinality";
                readonly type: "bytes";
            }, {
                readonly internalType: "uint64";
                readonly name: "blockNum";
                readonly type: "uint64";
            }, {
                readonly internalType: "uint64";
                readonly name: "blockTime";
                readonly type: "uint64";
            }, {
                readonly internalType: "bytes32";
                readonly name: "blockHash";
                readonly type: "bytes32";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "contractAddress";
                    readonly type: "address";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "callData";
                    readonly type: "bytes";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "result";
                    readonly type: "bytes";
                }];
                readonly internalType: "struct EthCallData[]";
                readonly name: "result";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct EthCallWithFinalityQueryResponse";
            readonly name: "r";
            readonly type: "tuple";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "responsePrefix";
        readonly outputs: readonly [{
            readonly internalType: "bytes";
            readonly name: "";
            readonly type: "bytes";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "bytes";
            readonly name: "response";
            readonly type: "bytes";
        }, {
            readonly components: readonly [{
                readonly internalType: "bytes32";
                readonly name: "r";
                readonly type: "bytes32";
            }, {
                readonly internalType: "bytes32";
                readonly name: "s";
                readonly type: "bytes32";
            }, {
                readonly internalType: "uint8";
                readonly name: "v";
                readonly type: "uint8";
            }, {
                readonly internalType: "uint8";
                readonly name: "guardianIndex";
                readonly type: "uint8";
            }];
            readonly internalType: "struct IWormhole.Signature[]";
            readonly name: "signatures";
            readonly type: "tuple[]";
        }];
        readonly name: "updateCounters";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "_chainID";
            readonly type: "uint16";
        }, {
            readonly internalType: "address";
            readonly name: "_contractAddress";
            readonly type: "address";
        }];
        readonly name: "updateRegistration";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint64";
            readonly name: "_blockNum";
            readonly type: "uint64";
        }, {
            readonly internalType: "uint256";
            readonly name: "_minBlockNum";
            readonly type: "uint256";
        }];
        readonly name: "validateBlockNum";
        readonly outputs: readonly [];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint64";
            readonly name: "_blockTime";
            readonly type: "uint64";
        }, {
            readonly internalType: "uint256";
            readonly name: "_minBlockTime";
            readonly type: "uint256";
        }];
        readonly name: "validateBlockTime";
        readonly outputs: readonly [];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "chainId";
            readonly type: "uint16";
        }, {
            readonly internalType: "uint16[]";
            readonly name: "_validChainIds";
            readonly type: "uint16[]";
        }];
        readonly name: "validateChainId";
        readonly outputs: readonly [];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "contractAddress";
                readonly type: "address";
            }, {
                readonly internalType: "bytes";
                readonly name: "callData";
                readonly type: "bytes";
            }, {
                readonly internalType: "bytes";
                readonly name: "result";
                readonly type: "bytes";
            }];
            readonly internalType: "struct EthCallData";
            readonly name: "r";
            readonly type: "tuple";
        }, {
            readonly internalType: "address[]";
            readonly name: "_expectedContractAddresses";
            readonly type: "address[]";
        }, {
            readonly internalType: "bytes4[]";
            readonly name: "_expectedFunctionSignatures";
            readonly type: "bytes4[]";
        }];
        readonly name: "validateEthCallData";
        readonly outputs: readonly [];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "contractAddress";
                readonly type: "address";
            }, {
                readonly internalType: "bytes";
                readonly name: "callData";
                readonly type: "bytes";
            }, {
                readonly internalType: "bytes";
                readonly name: "result";
                readonly type: "bytes";
            }];
            readonly internalType: "struct EthCallData[]";
            readonly name: "r";
            readonly type: "tuple[]";
        }, {
            readonly internalType: "address[]";
            readonly name: "_expectedContractAddresses";
            readonly type: "address[]";
        }, {
            readonly internalType: "bytes4[]";
            readonly name: "_expectedFunctionSignatures";
            readonly type: "bytes4[]";
        }];
        readonly name: "validateMultipleEthCallData";
        readonly outputs: readonly [];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "bytes";
            readonly name: "response";
            readonly type: "bytes";
        }, {
            readonly components: readonly [{
                readonly internalType: "bytes32";
                readonly name: "r";
                readonly type: "bytes32";
            }, {
                readonly internalType: "bytes32";
                readonly name: "s";
                readonly type: "bytes32";
            }, {
                readonly internalType: "uint8";
                readonly name: "v";
                readonly type: "uint8";
            }, {
                readonly internalType: "uint8";
                readonly name: "guardianIndex";
                readonly type: "uint8";
            }];
            readonly internalType: "struct IWormhole.Signature[]";
            readonly name: "signatures";
            readonly type: "tuple[]";
        }];
        readonly name: "verifyQueryResponseSignatures";
        readonly outputs: readonly [];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "wormhole";
        readonly outputs: readonly [{
            readonly internalType: "contract IWormhole";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }];
    static createInterface(): QueryDemoInterface;
    static connect(address: string, signerOrProvider: Signer | Provider): QueryDemo;
}
export {};
