import { BigNumber } from 'ethers';
import { SignatureLike } from '@ethersproject/bytes';
import { IDomain, ITypes, IMessage } from './defination';
interface FSLLoginOptions {
    responseType?: string;
    appKey: string;
    redirectUri?: string;
    scope?: string;
    state?: string;
    usePopup?: boolean;
    isApp?: boolean;
    domain?: string;
}
declare class FSLAuthorization {
    responseType?: string;
    appKey: string;
    redirectUri?: string;
    scope?: string;
    state?: string;
    usePopup?: boolean;
    domain?: string;
    isApp?: boolean;
    windowFeatures: string;
    private constructor();
    static init(opt: FSLLoginOptions): FSLAuthorization;
    signIn(args?: {
        withState: boolean;
    }): Promise<unknown>;
    signInV2(): Promise<unknown>;
    static evmVerifyMessage(msg: string, signature: SignatureLike): string;
    static evmVerifyTypedData(domain: IDomain, types: ITypes, message: IMessage, signature: SignatureLike): string;
    callEvmSign(args: {
        msg: any;
        rpc?: string;
        chainId: number;
        chain?: string;
        domain?: string;
        uid?: number;
        signDigest?: boolean;
    }): Promise<unknown>;
    callEvmSignDigest(args: {
        msg: any;
        rpc?: string;
        chainId: number;
        chain?: string;
        domain?: string;
        uid?: number;
    }): Promise<unknown>;
    signTransaction(args: {
        contractAddress: string;
        methodName: string;
        abi?: any;
        chainId: number;
        chain?: string;
        value?: string;
        gasLimit: string;
        params?: any[];
        to?: string;
        rpc?: string;
        domain?: string;
        nonce?: number;
        maxPriorityFeePerGasValue?: BigNumber;
        maxFeePerGasValue?: BigNumber;
        uid?: number;
    }): Promise<unknown>;
    callEvmContract(args: {
        contractAddress: string;
        methodName: string;
        abi?: any;
        chainId: number;
        chain?: string;
        value?: string;
        gasLimit: string;
        params?: any[];
        to?: string;
        rpc?: string;
        domain?: string;
        nonce?: number;
        maxPriorityFeePerGasValue?: BigNumber;
        maxFeePerGasValue?: BigNumber;
        uid?: number;
        confirmed?: boolean;
    }): Promise<unknown>;
    signTypedData(args: {
        domain: IDomain;
        types: ITypes;
        message: IMessage;
        chainId: number;
        mockDomain?: string;
        chain?: string;
        uid?: number;
    }): Promise<unknown>;
    callEvmContractByCallData(args: {
        contractAddress: string;
        callData: string;
        chainId: number;
        gasLimit: string;
        value?: string;
        chain?: string;
        rpc?: string;
        domain?: string;
        nonce?: number;
        onlySign?: boolean;
        maxPriorityFeePerGasValue?: BigNumber;
        maxFeePerGasValue?: BigNumber;
        uid?: number;
        confirmed?: boolean;
    }): Promise<unknown>;
    signCallDataTransaction(args: {
        contractAddress: string;
        callData: string;
        chainId: number;
        gasLimit: string;
        value?: string;
        chain?: string;
        rpc?: string;
        domain?: string;
        nonce?: number;
        maxPriorityFeePerGasValue?: BigNumber;
        maxFeePerGasValue?: BigNumber;
        uid?: number;
    }): Promise<unknown>;
    signSolMessage(args: {
        msg: string;
        domain?: string;
        uid?: number;
    }): Promise<unknown>;
    callSolInstructions(args: {
        instructions: any[];
        keypairs: any[];
        rpc?: string;
        unitLimit?: number;
        unitPrice?: number;
        domain?: string;
        onlySign?: boolean;
        uid?: number;
    }): Promise<unknown>;
    signSolInstructions(args: {
        instructions: any[];
        keypairs: any[];
        rpc?: string;
        unitLimit?: number;
        unitPrice?: number;
        domain?: string;
        uid?: number;
    }): Promise<unknown>;
    signSolTransaction(args: {
        transactions: any;
        uid?: number;
    }): Promise<unknown>;
    callEvmContractV2(args: {
        contractAddress: string;
        methodName: string;
        abi?: any;
        chainId: number;
        chain?: string;
        value?: string;
        gasLimit: string;
        params?: any[];
        to?: string;
        rpc?: string;
        domain?: string;
        nonce?: number;
        maxPriorityFeePerGasValue?: BigNumber;
        maxFeePerGasValue?: BigNumber;
        onlySign?: boolean;
        uid?: number;
    }): Promise<unknown>;
    signEvmContractV2(args: {
        contractAddress: string;
        methodName: string;
        abi?: any;
        chainId: number;
        chain?: string;
        value?: string;
        gasLimit: string;
        params?: any[];
        to?: string;
        rpc?: string;
        domain?: string;
        nonce?: number;
        maxPriorityFeePerGasValue?: BigNumber;
        maxFeePerGasValue?: BigNumber;
        uid?: number;
    }): Promise<unknown>;
}
export default FSLAuthorization;
