/**
 * Multisig Validation
 * Validates MultisigConfig and signer definitions
 */
import { type MultisigConfig, type MultisigSigner, type MultisigPreConfig, type MultisigDynamicConfig } from './MultisigTypes.js';
export interface ValidationResult {
    valid: boolean;
    errors: string[];
}
/**
 * Check if config is preconfigured mode
 */
export declare function isPreconfiguredMode(config: MultisigConfig): config is MultisigPreConfig;
/**
 * Check if config is dynamic mode
 */
export declare function isDynamicMode(config: MultisigConfig): config is MultisigDynamicConfig;
/**
 * Validate a single signer definition
 */
export declare function validateSigner(signer: MultisigSigner, index: number): string[];
/**
 * Calculate total weight from signers
 */
export declare function calculateTotalWeight(signers: MultisigSigner[]): number;
/**
 * Validate preconfigured mode config
 */
export declare function validatePreconfiguredConfig(config: MultisigPreConfig): ValidationResult;
/**
 * Validate dynamic mode config
 */
export declare function validateDynamicConfig(config: MultisigDynamicConfig): ValidationResult;
/**
 * Validate MultisigConfig
 * Throws MultisigError if invalid
 */
export declare function validateMultisigConfig(config: MultisigConfig): ValidationResult;
/**
 * Validate threshold against total weight
 */
export declare function validateThreshold(threshold: number, totalWeight: number): void;
