import type { AddressEx, Page } from './common'; export declare enum SafeMessageListItemType { DATE_LABEL = "DATE_LABEL", MESSAGE = "MESSAGE" } export declare type SafeMessageDateLabel = { type: SafeMessageListItemType.DATE_LABEL; timestamp: number; }; export declare enum SafeMessageStatus { NEEDS_CONFIRMATION = "NEEDS_CONFIRMATION", CONFIRMED = "CONFIRMED" } interface TypedDataDomain { name?: string; version?: string; chainId?: unknown; verifyingContract?: string; salt?: ArrayLike | string; } interface TypedDataTypes { name: string; type: string; } declare type TypedMessageTypes = { [key: string]: TypedDataTypes[]; }; export declare type EIP712TypedData = { domain: TypedDataDomain; types: TypedMessageTypes; message: Record; }; export declare type SafeMessage = { type: SafeMessageListItemType.MESSAGE; messageHash: string; status: SafeMessageStatus; logoUri: string | null; name: string | null; message: string | EIP712TypedData; creationTimestamp: number; modifiedTimestamp: number; confirmationsSubmitted: number; confirmationsRequired: number; proposedBy: AddressEx; confirmations: { owner: AddressEx; signature: string; }[]; preparedSignature?: string; }; export declare type SafeMessageListItem = SafeMessageDateLabel | SafeMessage; export declare type SafeMessageListPage = Page; export declare type ProposeSafeMessageRequest = { message: SafeMessage['message']; safeAppId?: number; signature: string; }; export declare type ConfirmSafeMessageRequest = { signature: string; }; export {};