import { Address, Hex } from 'viem';
import { NitroliteRPCMessage, MessageSigner, SingleMessageVerifier, MultiMessageVerifier, ParsedResponse, ApplicationRPCMessage, RPCResponse, RPCMethod } from './types';
export declare class NitroliteRPC {
    static createRequest(requestId: number | undefined, method: RPCMethod, params?: any[], timestamp?: number): NitroliteRPCMessage;
    static createAppRequest(requestId: number | undefined, method: RPCMethod, params: any[] | undefined, timestamp: number | undefined, sid: Hex): ApplicationRPCMessage;
    static parseResponse(rawMessage: string | object): ParsedResponse;
    static isResponseType<T extends RPCResponse>(response: ParsedResponse, method: T['method']): response is ParsedResponse & {
        data: T['params'];
    };
    private static getMessagePayload;
    static signRequestMessage(message: NitroliteRPCMessage, signer: MessageSigner): Promise<NitroliteRPCMessage>;
    static verifySingleSignature(message: NitroliteRPCMessage, expectedSigner: Address, verifier: SingleMessageVerifier): Promise<boolean>;
    static verifyMultipleSignatures(message: NitroliteRPCMessage, expectedSigners: Address[], verifier: MultiMessageVerifier): Promise<boolean>;
}
