import type { Address } from "viem"; export type DataIssueSeverity = "info" | "warning" | "error"; export type DataIssueCode = "COERCED_TYPE" | "OUT_OF_RANGE_CLAMPED" | "OUT_OF_RANGE_DROPPED" | "PRECISION_LOSS" | "DEFAULT_APPLIED" | "SOURCE_UNAVAILABLE" | "FALLBACK_USED" | "DECODE_FAILED"; export type DataIssueOwnerRef = { kind: "account"; chainId: number; address: Address; } | { kind: "subAccount"; chainId: number; address: Address; } | { kind: "accountPosition"; chainId: number; account: Address; vault: Address; } | { kind: "accountPositionCollateral"; chainId: number; account: Address; vault: Address; collateral: Address; } | { kind: "asset"; chainId: number; address: Address; } | { kind: "vault"; chainId: number; address: Address; } | { kind: "vaultCollateral"; chainId: number; vault: Address; collateral: Address; } | { kind: "vaultStrategy"; chainId: number; vault: Address; strategy: Address; } | { kind: "wallet"; chainId: number; address: Address; } | { kind: "walletAsset"; chainId: number; wallet: Address; asset: Address; } | { kind: "service"; service: string; chainId?: number; id?: string; }; export interface DataIssueLocation { owner: DataIssueOwnerRef; /** JSONPath-like, relative to the diagnostic owner. */ path: string; } export interface DataIssue { code: DataIssueCode; severity: DataIssueSeverity; message: string; locations: DataIssueLocation[]; source?: string; originalValue?: unknown; normalizedValue?: unknown; } export interface ServiceResult { result: T; errors: DataIssue[]; } export declare function vaultDiagnosticOwner(chainId: number, address: Address): DataIssueOwnerRef; export declare function assetDiagnosticOwner(chainId: number, address: Address): DataIssueOwnerRef; export declare function accountDiagnosticOwner(chainId: number, address: Address): DataIssueOwnerRef; export declare function subAccountDiagnosticOwner(chainId: number, address: Address): DataIssueOwnerRef; export declare function accountPositionDiagnosticOwner(chainId: number, account: Address, vault: Address): DataIssueOwnerRef; export declare function accountPositionCollateralDiagnosticOwner(chainId: number, account: Address, vault: Address, collateral: Address): DataIssueOwnerRef; export declare function vaultCollateralDiagnosticOwner(chainId: number, vault: Address, collateral: Address): DataIssueOwnerRef; export declare function vaultStrategyDiagnosticOwner(chainId: number, vault: Address, strategy: Address): DataIssueOwnerRef; export declare function walletDiagnosticOwner(chainId: number, address: Address): DataIssueOwnerRef; export declare function walletAssetDiagnosticOwner(chainId: number, wallet: Address, asset: Address): DataIssueOwnerRef; export declare function serviceDiagnosticOwner(service: string, chainId?: number, id?: string): DataIssueOwnerRef; export declare function dataIssueLocation(owner: DataIssueOwnerRef, path?: string): DataIssueLocation; export declare function withPathPrefix(path: string, prefix: string): string; export declare function dataIssueOwnerKey(owner: DataIssueOwnerRef): string; export declare function dataIssueLocationKey(location: DataIssueLocation): string; export declare function mapDataIssueLocations(issue: DataIssue, mapLocation: (location: DataIssueLocation) => DataIssueLocation): DataIssue; export declare function replaceDataIssueLocations(issue: DataIssue, locations: DataIssueLocation[]): DataIssue; export declare function compressDataIssues(errors: DataIssue[]): DataIssue[]; //# sourceMappingURL=entityDiagnostics.d.ts.map