import { type ObjectDiff } from '@hyperlane-xyz/utils';
import { MultiProvider } from '../providers/MultiProvider.js';
import { ChainName } from '../types.js';
import { WarpCoreConfig } from '../warp/types.js';
import { HypTokenRouterVirtualConfig, WarpRouteDeployConfigMailboxRequired } from './types.js';
export declare const WARP_ROUTE_CHECK_TYPE = "ConfigMismatch";
export declare const WARP_ROUTE_CHECK_SCALE_TYPE = "ScaleMismatch";
export interface WarpRouteCheckViolation {
    actual: string;
    chain: ChainName;
    expected: string;
    name: string;
    type: string;
}
export interface WarpRouteCheckResult {
    diff: Record<string, ObjectDiff>;
    isValid: boolean;
    scaleViolations: WarpRouteCheckViolation[];
    violations: WarpRouteCheckViolation[];
}
type ScaleValidationWarpRouteConfig = WarpRouteDeployConfigMailboxRequired & Record<string, Partial<HypTokenRouterVirtualConfig>>;
export declare function checkWarpRouteDeployConfig({ multiProvider, warpCoreConfig, warpDeployConfig, }: {
    multiProvider: MultiProvider;
    warpCoreConfig: WarpCoreConfig;
    warpDeployConfig: WarpRouteDeployConfigMailboxRequired;
}): Promise<WarpRouteCheckResult>;
export declare function getScaleViolations({ multiProvider, warpRouteConfig, }: {
    multiProvider: MultiProvider;
    warpRouteConfig: ScaleValidationWarpRouteConfig;
}): Promise<WarpRouteCheckViolation[]>;
export {};
//# sourceMappingURL=warpCheck.d.ts.map