import { Address, Hash, Hex, Transaction, TransactionReceipt } from 'viem';
export type CreateBroadcastParams = {
    contractName: string;
    contractAddress: Address;
    contractArguments?: any[];
    foundryProjectRoot: string;
};
export type AddTransactionParams = {
    contractAddress: Address;
    chainId: number;
    hash: Hash;
    transaction: Transaction;
    receipt: TransactionReceipt;
};
export type Broadcast = {
    chainId: number;
    hash: Hash;
    transaction: Transaction;
    receipt: TransactionReceipt;
};
export type MultichainBroadcast = {
    name: string;
    address: Address;
    timestamp: number;
    type: 'CREATE2';
    contractArguments: any[];
    foundryProjectRoot: string;
    transactions: Record<number, Broadcast>;
};
export type TransactionBroadcast = {
    hash: Hash;
    transactionType: string;
    contractName: string;
    contractAddress: Address;
    function: string | null;
    arguments: any[];
    transaction: {
        from: Address;
        to: Address;
        value: Hex;
        input: Hex;
        nonce: Hex;
        gas: Hex;
        chainId: Hex;
    };
    additionalContracts: any[];
    isFixedGasLimit: boolean;
};
export type Deployment = {
    transactions: TransactionBroadcast[];
    receipts: TransactionReceipt[];
    timestamp: number;
    chain: number;
};
export type RunArtifact = {
    deployments: Deployment[];
    timestamp: number;
};
export declare const writeMultichainBroadcast: (multichainBroadcast: MultichainBroadcast) => Promise<void>;
