export interface GenericContractABI {
    [key: string]: any[];
}
export interface ContractInterface {
    address: string;
    abi: GenericContractABI;
}
export interface DeployedContract {
    address: string;
    chainId: number;
    networkName: string;
}
export interface NetworkConfig {
    name: string;
    rpc: string;
    chainId: number;
    contracts: Record<string, string>;
    tokens: {
        name: string;
        symbol: string;
        decimals: number;
    };
}
export interface ContractAddresses {
    [networkName: string]: NetworkConfig;
}
export interface ContractFunction {
    name: string;
    inputs: ContractInput[];
    outputs: ContractOutput[];
    stateMutability: string;
    type: string;
}
export interface ContractInput {
    name: string;
    type: string;
    indexed?: boolean;
}
export interface ContractOutput {
    name: string;
    type: string;
}
export interface ContractEvent {
    name: string;
    inputs: ContractInput[];
    anonymous: boolean;
    type: string;
}
