import { Hex, Address } from 'viem';
/**
 * @dev Implements different safeguarding mechanisms depending on the encoded values in the salt
 * (`||` stands for byte-wise concatenation):
 *   => salt (32 bytes) = 0xbebebebebebebebebebebebebebebebebebebebe||ff||1212121212121212121212
 *   - The first 20 bytes (i.e. `bebebebebebebebebebebebebebebebebebebebe`) may be used to
 *     implement a permissioned deploy protection by setting them equal to `msg.sender`,
 *   - The 21st byte (i.e. `ff`) may be used to implement a cross-chain redeploy protection by
 *     setting it equal to `0x01`,
 *   - The last random 11 bytes (i.e. `1212121212121212121212`) allow for 2**88 bits of entropy
 *     for mining a salt.
 * @param salt The 32-byte random value used to create the contract address.
 * @return guardedSalt The guarded 32-byte random value used to create the contract address.
 */
export declare const createBaseSalt: ({ protectedSender, shouldAddRedeployProtection, additionalEntropy, }: {
    protectedSender?: Address;
    shouldAddRedeployProtection?: boolean;
    additionalEntropy: Hex;
}) => `0x${string}`;
export declare const createGuardedSalt: ({ baseSalt, chainId, msgSender, }: {
    baseSalt: Hex;
    chainId?: number;
    msgSender?: Address;
}) => `0x${string}`;
