export interface SerializableTransactionReceipt {
    to: string;
    from: string;
    contractAddress: string;
    transactionIndex: number;
    blockHash: string;
    transactionHash: string;
    blockNumber: number;
    status?: number;
}
export interface TransactionDetails {
    hash: string;
    approval?: {
        tokenAddress: string;
        spender: string;
    };
    summary?: string;
    claim?: {
        recipient: string;
    };
    receipt?: SerializableTransactionReceipt;
    lastCheckedBlockNumber?: number;
    addedTime: number;
    confirmedTime?: number;
    from: string;
}
export interface AddTransactionDetails {
    chainId: number;
    from: string;
    hash: string;
    approval?: {
        tokenAddress: string;
        spender: string;
    };
    summary?: string;
    claim?: {
        recipient: string;
    };
}
export interface TransactionState {
    [chainId: number]: {
        [txHash: string]: TransactionDetails;
    };
}
export declare function useTransactionState(): {
    transactions: TransactionState;
    addTransaction: ({ chainId, from, hash, approval, summary, claim }: AddTransactionDetails) => void;
    clearAllTransactions: ({ chainId }: {
        chainId: number;
    }) => void;
    checkedTransaction: ({ chainId, hash, blockNumber }: {
        chainId: number;
        hash: string;
        blockNumber: number;
    }) => void;
    finalizeTransaction: ({ hash, chainId, receipt }: {
        chainId: number;
        hash: string;
        receipt: SerializableTransactionReceipt;
    }) => void;
};
