import { ethers } from 'ethers'; import * as config from "./config.js"; export type SignaturePart = { signature: string; isDynamic: boolean; }; export type Signature = { version: number; config: T; subdigest: string; payload?: SignedPayload; }; export type UnrecoveredSignature = { version: number; }; export type SignedPayload = { message?: ethers.BytesLike; digest: string; chainId: ethers.BigNumberish; address: string; }; export interface SignatureCoder = Signature, Z extends UnrecoveredSignature = UnrecoveredSignature> { decode: (data: string) => Z; encode: (data: T | Z | ethers.BytesLike) => string; trim: (data: string) => Promise; recover: (data: Z, payload: SignedPayload, provider: ethers.Provider) => Promise; supportsNoChainId: boolean; encodeSigners: (config: Y, signatures: Map, subdigests: string[], chainId: ethers.BigNumberish) => { encoded: string; weight: bigint; }; hasEnoughSigningPower: (config: Y, signatures: Map) => boolean; chainSignatures: (main: T | Z | ethers.BytesLike, suffixes: (T | Z | ethers.BytesLike)[]) => string; hashSetImageHash: (imageHash: string) => string; signaturesOf: (config: Y) => { address: string; signature: string; }[]; signaturesOfDecoded: (decoded: Z) => string[]; } export declare function subdigestOf(payload: SignedPayload): string; export declare function isSignedPayload(payload: any): payload is SignedPayload;