import { SpokePoolClient } from "../clients";
import { CachingMechanismInterface, Deposit, DepositWithBlock, Fill, RelayData, SlowFillRequest, ConvertedRelayData, ConvertedFill } from "../interfaces";
export declare enum InvalidFill {
    DepositIdInvalid = 0,
    DepositIdNotFound = 1,
    FillMismatch = 2,
    DepositIdOutOfRange = 3
}
export type DepositSearchResult = {
    found: true;
    deposit: DepositWithBlock;
} | {
    found: false;
    code: InvalidFill;
    reason: string;
};
export declare function queryHistoricalDepositForFill(spokePoolClient: SpokePoolClient, fill: Fill | SlowFillRequest, cache?: CachingMechanismInterface): Promise<DepositSearchResult>;
export declare function getRelayEventKey(data: Omit<RelayData, "message"> & {
    messageHash: string;
    destinationChainId: number;
}): string;
export declare function validateFillForDeposit(relayData: Omit<RelayData, "message"> & {
    messageHash: string;
    destinationChainId: number;
}, deposit?: Omit<Deposit, "quoteTimestamp" | "fromLiteChain" | "toLiteChain">): {
    valid: true;
} | {
    valid: false;
    reason: string;
};
export declare function isZeroValueDeposit(deposit: Pick<RelayData, "inputAmount" | "message">): boolean;
export declare function invalidOutputToken(deposit: Pick<RelayData, "outputToken">): boolean;
export declare function isZeroValueFillOrSlowFillRequest(e: Pick<Fill | SlowFillRequest, "inputAmount" | "messageHash">): boolean;
export declare function isMessageEmpty(message?: string): boolean;
export declare function isFillOrSlowFillRequestMessageEmpty(message: string): boolean;
export declare function isDepositSpedUp(deposit: Deposit): boolean;
export declare function resolveDepositMessage(deposit: Deposit): string;
export declare function convertRelayDataParamsToBytes32(relayData: RelayData): ConvertedRelayData;
export declare function convertFillParamsToBytes32(fill: Fill): ConvertedFill;
export declare function convertRelayDataParamsToNative(relayData: RelayData): ConvertedRelayData;
export declare function convertFillParamsToNative(fill: Fill): ConvertedFill;
