export type ChainsOptions = 1 | 17000 | 11155111 | 560048;
export interface NetworkConfig {
    name: string;
    byzantineFactoryAddress: string;
    scanLink: string;
    stETHAddress: string;
    wstETHAddress: string;
    osETHAddress?: string;
    mETHAddress?: string;
    ETHxAddress?: string;
}
/**
 * Client initialization options
 */
export interface ByzantineClientOptions {
    chainId: ChainsOptions;
    provider?: any;
    signer?: any;
}
export type RestakingProtocol = "EigenLayer" | "Symbiotic" | "SuperVault" | "Babylon";
export type RestakingType = "Native" | "ERC20";
export interface Metadata {
    name: string;
    description: string;
    image_url?: string;
    social_twitter?: string;
    social_discord?: string;
    social_telegram?: string;
    social_website?: string;
    social_github?: string;
}
export interface BaseParams {
    metadata: Metadata | string;
    token_address: string;
    is_deposit_limit: boolean;
    deposit_limit: bigint;
    is_private: boolean;
    is_tokenized: boolean;
    token_name: string;
    token_symbol: string;
    curator_fee: number;
    role_manager: string;
    role_version_manager: string;
    role_deposit_limit_manager: string;
    role_deposit_whitelist_manager: string;
    role_curator_fee_claimer: string;
    role_curator_fee_claimer_admin: string;
}
export interface NativeParams {
    byzVaultParams: BaseParams;
    operator_id: string;
    solo_staking_fee?: number;
    roles_validator_manager: string[];
}
export declare enum DelegatorType {
    NETWORK_RESTAKE = 0,// 0
    FULL_RESTAKE = 1,// 1
    OPERATOR_SPECIFIC = 2,// 2
    OPERATOR_NETWORK_SPECIFIC = 3
}
export declare enum SlasherType {
    INSTANT = 0,// 0
    VETO = 1
}
export interface SymbioticParams {
    vault_version: number;
    vault_epoch_duration: number;
    slasher_type: SlasherType;
    slasher_veto_duration: number;
    slasher_number_epoch_to_set_delay: number;
    burner_delay_settings_applied: number;
    burner_global_receiver: string;
    burner_network_receiver?: {
        network: string;
        receiver: string;
    }[];
    burner_operator_network_receiver?: {
        network: string;
        operator: string;
        receiver: string;
    }[];
    delegator_type: DelegatorType;
    delegator_hook: string;
    delegator_operator: string;
    delegator_network: string;
    role_delegator_set_hook: string;
    role_delegator_set_network_limit: string[];
    role_delegator_set_operator_network_limit: string[];
    role_burner_owner_burner: string;
}
export interface SymbioticVault {
    base: BaseParams;
    symbiotic: SymbioticParams;
}
export interface EigenlayerParams {
    delegation_set_role_holder: string;
    operator: string;
    approver_signature_and_expiry: {
        signature: string;
        expiry: number;
    };
    approver_salt: string;
}
export interface EigenpodParams {
    eigen_pod_manager: string;
}
export interface EigenlayerVault {
    base: BaseParams;
    eigenlayer: EigenlayerParams;
}
export interface NativeEigenlayerVault {
    base: NativeParams;
    eigenlayer: EigenlayerParams;
    eigenpod: EigenpodParams;
}
export interface SuperVault {
    base: BaseParams;
    symbiotic: SymbioticParams;
    eigenlayer: EigenlayerParams;
    ratio: number;
    curator: string;
}
