import { IntentScope, Signer } from "@mysten/sui/cryptography";
import { Order, SignedOrder } from "../interfaces/order";
import { SigPK } from "../types";
import { BaseWallet, ZkPayload } from "../interfaces";
export declare class OrderSigner {
    private signer;
    constructor(signer: Signer);
    getSignedOrder(order: Order, signer?: Signer): Promise<SignedOrder>;
    signOrder(order: Order, signer?: Signer): Promise<SigPK>;
    static signOrderUsingZkSignature({ order, signer, zkPayload }: {
        order: Order;
        signer: Signer;
        zkPayload: ZkPayload;
    }): Promise<SigPK>;
    /**
     * Signs the order using the provided wallet context
     * @param order order to be signed
     * @param wallet wallet context
     * @returns signature and public key
     */
    static signOrderUsingWallet(order: Order, wallet: BaseWallet): Promise<SigPK>;
    signPayload(payload: unknown, keyPair?: Signer): Promise<SigPK>;
    static signPayloadUsingZKSignature({ payload, signer, zkPayload }: {
        payload: unknown;
        signer: Signer;
        zkPayload: ZkPayload;
    }): Promise<SigPK>;
    static signBytesPayloadUsingZKSignature({ payload, signer, zkPayload }: {
        payload: Uint8Array;
        signer: Signer;
        zkPayload: ZkPayload;
    }): Promise<SigPK>;
    static signPayloadUsingWallet(payload: unknown, wallet: BaseWallet, useDeprecatedSigningMethod?: boolean): Promise<SigPK>;
    static encodePayload(payload: unknown, intentScope?: IntentScope): Uint8Array;
    static verifySignature(payload: unknown, signature: string, publicKey: string): boolean;
    static verifyPhantomWalletSignature(payload: unknown, signature: string, publicKey: string): boolean;
    /**
     * Verifies if the given signature is correct or not using the raw order
     * @param order the order used to create the signature
     * @param signature the generated signature in hex string
     * @param publicKey signer's public key in base64 str
     * @returns True if the signature is valid
     */
    static verifySignatureUsingOrder(order: Order, signature: string, publicKey: string): boolean;
    static getSerializedOrder(order: Order): string;
    static getOrderHash(order: Order | string): string;
    getPublicKeyStr(keypair?: Signer): string;
}
