import { type ContractRunner } from 'ethers';
import type { Garp, GarpInterface } from '../Garp';
export declare class Garp__factory {
    static readonly abi: readonly [{
        readonly type: "function";
        readonly name: "bounty";
        readonly inputs: readonly [{
            readonly name: "fromApplication";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "destinationIdentifier";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "messageIdentifier";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly outputs: readonly [{
            readonly name: "incentive";
            readonly type: "tuple";
            readonly internalType: "struct IMessageEscrowStructs.IncentiveDescription";
            readonly components: readonly [{
                readonly name: "maxGasDelivery";
                readonly type: "uint48";
                readonly internalType: "uint48";
            }, {
                readonly name: "maxGasAck";
                readonly type: "uint48";
                readonly internalType: "uint48";
            }, {
                readonly name: "refundGasTo";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "priceOfDeliveryGas";
                readonly type: "uint96";
                readonly internalType: "uint96";
            }, {
                readonly name: "priceOfAckGas";
                readonly type: "uint96";
                readonly internalType: "uint96";
            }, {
                readonly name: "targetDelta";
                readonly type: "uint64";
                readonly internalType: "uint64";
            }];
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "estimateAdditionalCost";
        readonly inputs: readonly [{
            readonly name: "destinationChainIdentifier";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly outputs: readonly [{
            readonly name: "asset";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "amount";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "estimateAdditionalCost";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "asset";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "amount";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "increaseBounty";
        readonly inputs: readonly [{
            readonly name: "fromApplication";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "destinationIdentifier";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "messageIdentifier";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "priceOfDeliveryGas";
            readonly type: "uint96";
            readonly internalType: "uint96";
        }, {
            readonly name: "priceOfAckGas";
            readonly type: "uint96";
            readonly internalType: "uint96";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "payable";
    }, {
        readonly type: "function";
        readonly name: "messageDelivered";
        readonly inputs: readonly [{
            readonly name: "sourceIdentifier";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "sourceImplementationIdentifier";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }, {
            readonly name: "messageIdentifier";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly outputs: readonly [{
            readonly name: "hasMessageBeenExecuted";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "processPacket";
        readonly inputs: readonly [{
            readonly name: "messagingProtocolContext";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }, {
            readonly name: "message";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }, {
            readonly name: "feeRecipient";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "payable";
    }, {
        readonly type: "function";
        readonly name: "reemitAckMessage";
        readonly inputs: readonly [{
            readonly name: "sourceIdentifier";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "implementationIdentifier";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }, {
            readonly name: "receiveAckWithContext";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "payable";
    }, {
        readonly type: "function";
        readonly name: "setRemoteImplementation";
        readonly inputs: readonly [{
            readonly name: "chainIdentifier";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "implementation";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "submitMessage";
        readonly inputs: readonly [{
            readonly name: "destinationIdentifier";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "destinationAddress";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }, {
            readonly name: "message";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }, {
            readonly name: "incentive";
            readonly type: "tuple";
            readonly internalType: "struct IMessageEscrowStructs.IncentiveDescription";
            readonly components: readonly [{
                readonly name: "maxGasDelivery";
                readonly type: "uint48";
                readonly internalType: "uint48";
            }, {
                readonly name: "maxGasAck";
                readonly type: "uint48";
                readonly internalType: "uint48";
            }, {
                readonly name: "refundGasTo";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "priceOfDeliveryGas";
                readonly type: "uint96";
                readonly internalType: "uint96";
            }, {
                readonly name: "priceOfAckGas";
                readonly type: "uint96";
                readonly internalType: "uint96";
            }, {
                readonly name: "targetDelta";
                readonly type: "uint64";
                readonly internalType: "uint64";
            }];
        }, {
            readonly name: "deadline";
            readonly type: "uint64";
            readonly internalType: "uint64";
        }];
        readonly outputs: readonly [{
            readonly name: "gasRefund";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "messageIdentifier";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly stateMutability: "payable";
    }, {
        readonly type: "function";
        readonly name: "timeoutMessage";
        readonly inputs: readonly [{
            readonly name: "sourceIdentifier";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "implementationIdentifier";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }, {
            readonly name: "originBlockNumber";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "message";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "payable";
    }, {
        readonly type: "event";
        readonly name: "BountyClaimed";
        readonly inputs: readonly [{
            readonly name: "destinationImplementation";
            readonly type: "bytes";
            readonly indexed: true;
            readonly internalType: "bytes";
        }, {
            readonly name: "chainIdentifier";
            readonly type: "bytes32";
            readonly indexed: false;
            readonly internalType: "bytes32";
        }, {
            readonly name: "messageIdentifier";
            readonly type: "bytes32";
            readonly indexed: true;
            readonly internalType: "bytes32";
        }, {
            readonly name: "gasSpentOnDestination";
            readonly type: "uint64";
            readonly indexed: false;
            readonly internalType: "uint64";
        }, {
            readonly name: "gasSpentOnSource";
            readonly type: "uint64";
            readonly indexed: false;
            readonly internalType: "uint64";
        }, {
            readonly name: "destinationRelayerReward";
            readonly type: "uint128";
            readonly indexed: false;
            readonly internalType: "uint128";
        }, {
            readonly name: "sourceRelayerReward";
            readonly type: "uint128";
            readonly indexed: false;
            readonly internalType: "uint128";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "BountyIncreased";
        readonly inputs: readonly [{
            readonly name: "messageIdentifier";
            readonly type: "bytes32";
            readonly indexed: true;
            readonly internalType: "bytes32";
        }, {
            readonly name: "newDeliveryGasPrice";
            readonly type: "uint96";
            readonly indexed: false;
            readonly internalType: "uint96";
        }, {
            readonly name: "newAckGasPrice";
            readonly type: "uint96";
            readonly indexed: false;
            readonly internalType: "uint96";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "BountyPlaced";
        readonly inputs: readonly [{
            readonly name: "destinationImplementation";
            readonly type: "bytes";
            readonly indexed: true;
            readonly internalType: "bytes";
        }, {
            readonly name: "chainIdentifier";
            readonly type: "bytes32";
            readonly indexed: false;
            readonly internalType: "bytes32";
        }, {
            readonly name: "messageIdentifier";
            readonly type: "bytes32";
            readonly indexed: true;
            readonly internalType: "bytes32";
        }, {
            readonly name: "incentive";
            readonly type: "tuple";
            readonly indexed: false;
            readonly internalType: "struct IMessageEscrowStructs.IncentiveDescription";
            readonly components: readonly [{
                readonly name: "maxGasDelivery";
                readonly type: "uint48";
                readonly internalType: "uint48";
            }, {
                readonly name: "maxGasAck";
                readonly type: "uint48";
                readonly internalType: "uint48";
            }, {
                readonly name: "refundGasTo";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "priceOfDeliveryGas";
                readonly type: "uint96";
                readonly internalType: "uint96";
            }, {
                readonly name: "priceOfAckGas";
                readonly type: "uint96";
                readonly internalType: "uint96";
            }, {
                readonly name: "targetDelta";
                readonly type: "uint64";
                readonly internalType: "uint64";
            }];
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "MessageAcked";
        readonly inputs: readonly [{
            readonly name: "destinationImplementation";
            readonly type: "bytes";
            readonly indexed: false;
            readonly internalType: "bytes";
        }, {
            readonly name: "chainIdentifier";
            readonly type: "bytes32";
            readonly indexed: false;
            readonly internalType: "bytes32";
        }, {
            readonly name: "messageIdentifier";
            readonly type: "bytes32";
            readonly indexed: false;
            readonly internalType: "bytes32";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "MessageDelivered";
        readonly inputs: readonly [{
            readonly name: "sourceImplementation";
            readonly type: "bytes";
            readonly indexed: true;
            readonly internalType: "bytes";
        }, {
            readonly name: "chainIdentifier";
            readonly type: "bytes32";
            readonly indexed: false;
            readonly internalType: "bytes32";
        }, {
            readonly name: "messageIdentifier";
            readonly type: "bytes32";
            readonly indexed: true;
            readonly internalType: "bytes32";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "MessageTimedOut";
        readonly inputs: readonly [{
            readonly name: "destinationImplementation";
            readonly type: "bytes";
            readonly indexed: false;
            readonly internalType: "bytes";
        }, {
            readonly name: "chainIdentifier";
            readonly type: "bytes32";
            readonly indexed: false;
            readonly internalType: "bytes32";
        }, {
            readonly name: "messageIdentifier";
            readonly type: "bytes32";
            readonly indexed: false;
            readonly internalType: "bytes32";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "RemoteImplementationSet";
        readonly inputs: readonly [{
            readonly name: "application";
            readonly type: "address";
            readonly indexed: false;
            readonly internalType: "address";
        }, {
            readonly name: "chainIdentifier";
            readonly type: "bytes32";
            readonly indexed: false;
            readonly internalType: "bytes32";
        }, {
            readonly name: "implementationAddressHash";
            readonly type: "bytes32";
            readonly indexed: false;
            readonly internalType: "bytes32";
        }, {
            readonly name: "implementationAddress";
            readonly type: "bytes";
            readonly indexed: false;
            readonly internalType: "bytes";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "TimeoutInitiated";
        readonly inputs: readonly [{
            readonly name: "sourceImplementation";
            readonly type: "bytes";
            readonly indexed: false;
            readonly internalType: "bytes";
        }, {
            readonly name: "chainIdentifier";
            readonly type: "bytes32";
            readonly indexed: false;
            readonly internalType: "bytes32";
        }, {
            readonly name: "messageIdentifier";
            readonly type: "bytes32";
            readonly indexed: false;
            readonly internalType: "bytes32";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "error";
        readonly name: "AckHasNotBeenExecuted";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "CannotRetryWrongMessage";
        readonly inputs: readonly [{
            readonly name: "";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
    }, {
        readonly type: "error";
        readonly name: "DeadlineInPast";
        readonly inputs: readonly [{
            readonly name: "blocktimestamp";
            readonly type: "uint64";
            readonly internalType: "uint64";
        }, {
            readonly name: "actual";
            readonly type: "uint64";
            readonly internalType: "uint64";
        }];
    }, {
        readonly type: "error";
        readonly name: "DeadlineNotPassed";
        readonly inputs: readonly [{
            readonly name: "expected";
            readonly type: "uint64";
            readonly internalType: "uint64";
        }, {
            readonly name: "actual";
            readonly type: "uint64";
            readonly internalType: "uint64";
        }];
    }, {
        readonly type: "error";
        readonly name: "DeadlineTooLong";
        readonly inputs: readonly [{
            readonly name: "maxAllowed";
            readonly type: "uint64";
            readonly internalType: "uint64";
        }, {
            readonly name: "actual";
            readonly type: "uint64";
            readonly internalType: "uint64";
        }];
    }, {
        readonly type: "error";
        readonly name: "FeeRecipientIsZero";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "ImplementationAddressAlreadySet";
        readonly inputs: readonly [{
            readonly name: "currentImplementation";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }];
    }, {
        readonly type: "error";
        readonly name: "IncorrectValueProvided";
        readonly inputs: readonly [{
            readonly name: "expected";
            readonly type: "uint128";
            readonly internalType: "uint128";
        }, {
            readonly name: "actual";
            readonly type: "uint128";
            readonly internalType: "uint128";
        }];
    }, {
        readonly type: "error";
        readonly name: "InvalidImplementationAddress";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "InvalidTimeoutPackage";
        readonly inputs: readonly [{
            readonly name: "expected";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "actual";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
    }, {
        readonly type: "error";
        readonly name: "MessageAlreadyAcked";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "MessageAlreadyBountied";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "MessageAlreadyProcessed";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "MessageAlreadySpent";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "MessageDoesNotExist";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "MessageHasInvalidContext";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "NoImplementationAddressSet";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "NotEnoughGasExecution";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "NotEnoughGasProvided";
        readonly inputs: readonly [{
            readonly name: "expected";
            readonly type: "uint128";
            readonly internalType: "uint128";
        }, {
            readonly name: "actual";
            readonly type: "uint128";
            readonly internalType: "uint128";
        }];
    }, {
        readonly type: "error";
        readonly name: "NotImplementedError";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "RefundGasToIsZero";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "RouteDisabled";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "SendLostGasToIsZero";
        readonly inputs: readonly [];
    }];
    static createInterface(): GarpInterface;
    static connect(address: string, runner?: ContractRunner | null): Garp;
}
//# sourceMappingURL=Garp__factory.d.ts.map